What's everyone working on this week (41/2017)?


New week, new Rust! What are you folks up to?


I recently picked up my side project Indigo which is my take on a UI framework in Rust. It works using a procedural macro plugin for a markup like UI and a WPF like two-pass layout system. It uses WebRender for GPU accelerated rendering.

This week I got hit testing and scrolling implemented. For hit testing, I leveraged WebRender’s new support for built-in hit testing. Scrolling is also using WR’s API.

I also worked a ton on the styling macro to support multiple styles and visual states (basically input events trigger visual state changes (hover, pressed, et all) and a restyle, the style system then chooses a defined style for the visual state, and if need be rebuilds the display list.).

The cool thing about the style system in my opinion is that it is strongly typed, so you can define things like you would in Rust using enums :).

This week I plan on implementing a Grid layout system to allow for more than just vertical/horizontal stacking. I’d also like to tackle image primitives and fix text, it’s horribly broken.

The code is in a really ugly, hacky state, but I’m working towards getting it somewhere I can be proud of so that I can throw it up on GitHub.

Here’s a screenshot and video . Pay no attention to the FPS shown in the video, I only draw new frames when something actually changes in the scene, so WR’s profiler gets a little confused.


Just got back on my feet after RustFest (which was excellent). The jetlag was a bit sinister, it let me think I was fine for a few days before taking me down.

I put out a new release of elastic this week with an async API and spent some time tweaking the build to make it a bit faster.

I’m slowly getting myself set up to live code some enhancements to a demo web app I put together. At the very least it’ll be recorded enhancements uploaded to YouTube after the fact… Depends on what my internet connection thinks of the idea of streaming.

I need to start wrapping up the evaluation for semver and open some tracking issues. Now’s a great time to jump on there and leave your thoughts/experience using semver!

I also need to ramp up the evaluation for mime. It still needs lots of input so once again please check it out if you get a chance.

Overall I think it’s going to be another busy week!


This week I’ll be consuming a 3D scene encoded with CBOR, and drawing it for the first time in my software 3D renderer. I’ll also be porting some simple GLSL shaders to Rust.

Following that, I’m planning how I might integrate imgui into the SDL2 wrapper that I’m using for testing the renderer. At the moment I’m considering switching to gfx. That might make my life a bit easier down the road.


A week ago I found myself on a pretty long flight with nothing much to do. I did have the latest rust toolchain installed on my laptop and decided to read through the documentation (something I had tried to do a couple of years ago and failed miserably). This time around however, after a few hours of going through the documentation, I ended up writing dff. It’s a simple tool to locate duplicate files on the filesystem.

I have to say, the second edition of “The Book” is a marked improvement over the first edition.

While I was able to bang out the code pretty quickly, I am not sure if what I have is idiomatic rust or not? I would appreciate it if people more familiar with the language could provide some feedback on the coding style.


I’ve found a CRC-32-Castagnoli crate on GitHub, and while it works well, it was (mostly) not written in Rust! It just compiled a crc32c.c file and linked it statically to the crate.

So over the weekend I’ve rewritten it in Rust. I’m using stdsimd to automatically choose between the software-only and the hardware-accelerated version.

Best part: the Rust version is (in my micro-benchmarks) a bit faster than the C one (well, by a few hundred nanoseconds, but still!).


Heh, funny. I started writing a duplicate file finder as well. I modeled mine on fdupes though haven’t pushed it yet. Getting there. It gave me a chance to play with the WalkDir crate.