What are you folks working on this Week (14/2016)?


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


Hacking on my mocking library. Here is what it does in 0.1.0 released today:

let m = mock!(MyTrait); // presto, instance of your trait ready to use

// mock as few of the methods as you need
mock!(m.compute(usize, Vec<i32>) -> String { "success".to_string() });

The bottom of the readme has a few features I plan to work on, for example assertions that particular methods were called.

// called with specific arguments
assert_called!(m.compute(3, vec![1, 4, 1, 5]));

// called multiple times with any arguments
assert_called!(10 * m.compute);


Working on a generic, concurrent double-buffer, which is a core component of the game project I mentioned in a previous incarnation of this thread. It allows multiple threads to mutate the back buffer via disjoint slices (aligned to cache lines to eliminate false-sharing), while having read-only access to the whole front buffer.

The hardest part is getting the threads to rendezvous without deadlocking when it’s time to swap.


I am doing the same thing since I started playing with Rust nearly 10 months ago: working on my molecular simulation library. But I figured I’ve never talked about it here, so let’s do it now!

Molecular simulation is one of the tools computational chemists use to predicte properties of matter. Code for theses simulations is often written in C, Fortran or C++, and run from desktop workstations to super-calculators with 1000+ processors.

Rust seems to be a good fit here, partly because concurrency and speed are highly desirable, but mainly because of it’s “hack without fear” possibilities. Being able to explore new algorithms in research without breaking the existing code, and easy refactoring are very attractive to scientists (who are not primarily developers).

The code is getting closer to an initial public release, it mainly misses user documentation, and a few features for Monte-Carlo simulations.

PS: any feedback on the code is very welcome!


A new episode of New Rustacean! :arrow_forward: e013: Staying alive is my best shot at distilling everything I understand so far about lifetimes into 17 minutes of audio.


More work on elastic_types. Polish off tests for numeric type mapping and maybe finally start working on geo types.

Reading through the WIP leaf book and doing some copyediting as I go. It’s an easy-reading introduction to machine learning through the lens of the leaf framework and is well worth checking out whatever your experience with ML.