Desync v0.7.0 released

I've just released Desync 0.7.0, which is the asynchronous programming library I developed to solve the issues I encountered while developing FlowBetween.

Desync is a slightly 'non-traditional' concurrency library in that it eschews the traditional notions of threads and locking in favour of ordering operations. This approach gives it a very simple yet flexible API, with just two main operations to learn: sync() and desync(). It's a model that fits particularly well with Rust, as it can greatly simplify using borrowed values with concurrent operations.

0.7.0 was mainly about improving integration with code that uses Futures (async/await). I've split future() into two functions: future_sync() and future_desync(), and added a detach() function to the result of the desync variant to make it easy to run futures 'in the background'.

I've improved the scheduler quite a lot, especially when piping data which is now very much faster. I've been using it to schedule tessellation operations in FlowBetween's new renderer, which has shaken out a lot of bugs.

5 Likes