What's everyone working on this week (1/2019)?


A happy new year to all Rustaceans everywhere! What are you folks up to?


Refactoring EnumX and CeX to get more clean APIs and better documentations. Version 0.3.0 is coming.


Going to add support for json5

issue: https://github.com/bnclabs/jsondata/issues/4
repo: https://github.com/bnclabs/jsondata


FlowBetween has acquired a new trick over Christmas - flood-fills:


The algorithm is based on ray-casting and can produce a shape even from quite complicated paths, and even paths that are incomplete, like this:


I’ve got quite a few things to do to improve the tool at the moment. One thing I want to add in particular is automatically joining fills that border each other into a single shape (as well as a bunch of other arithmetic operations. I’ve got some other ideas like using the same algorithm to simplify outlines - welding lines together based on the area they encompass and adding options to restrict the area that’s filled or the size of gaps through which the fill can ‘escape’.

However, I’m trying to visit features briefly and move on rather than spend too much time on a single feature so this week I think I might have a look at the UI layer. The Gtk UI is currently missing a couple of controls and seems to have stopped responding to clicks for some reason, and I’ve wanted to add a Cocoa UI for a while now so that I’m not quite so tied to development in the browser.


I’m improving automatic categorization on crates.rs. I’ve got trolled by Diesel:

They’ve tagged their project as “blockchain”, and it’s a popular crate. There’s also Parity tech that does cryptocurrencies and some database adapters. So my graph coloring algorithm now thinks databases are blockchains, and postgresql is a cryptocurrency.


Continuing maintenance for my game – updating asset loading to use Amethyst’s prefab capability, and then writing docs for how to use the prefab system.

One fun thing about it is writing my first #[proc_macro_attribute]. There’s more power than #[proc_macro_derive]!
Yes please I want to fields to arbitrary structs :upside_down_face:.


I will continue to work on issue 84:

This was rendered using the C++ version, lets match the subsurface scattering by adding the relevant code to the Rust version


Building a utility for our dev team at work.

It’s a CLI tool / proxy server that communicates with a remote server to simplify local development for our Rails team. Eventually, I’d like to replace the remote service entirely, which has to run on Windows, but doesn’t have to be written in Java.


Attempting to build a website using only hyper and futures instead of complicated stuff like rocket.

If anyone knows of a good asynchronous hash map I can use for caching (ie. I don’t need to mutate entries, only insert and remove), I’d be interested of hearing of them. I’m currently using chashmap.


Last week I published the prefix_sum crate and updated my segment-tree crate.

They’re both pretty related. They’re data structures that specialize in modifications and lookups on intervals of an array. For example with prefix_sum you could add something to every value in an interval in O(1) time, and with segment-tree you could find the minimum number in any interval in an array in O(log(len)) time.

I realize I’m a week off, but today is my first time posting to one of these threads, so I thought I’d add this too.


Before to start with my message blocked framework I wanted to learn about tokio.rs because of this I’m dedicating this week for that.


Distance functions for strings: qgram, cosine and jaccard for n-gram.

  • “native”(using rust built-in count_ones())
  • a safe and non-panic version of Lauradoux popcount (was going to use huonw’s rust hamming package but I need a version that does not panic).


Well, my attempts to work with android were abit of a flop, so I’ve decided to try to integrate rust with what I used to work with before coming to rust, MonoGame, and have offered to help port their math portion of their library to rust on an FFI. Here is my offer by the way


I just got CartCache infront of my Async Direct IO for the read path on my database engine, so now I’m trying to decide which issue to tackle now.

  • Why do I OOM with 1M nodes under test, but not .5M nodes, when the process doesn’t seem to allocate hardly any memory, and the system has tons available.
  • How to best cause a recursive read of connected node fragments while loading any particular fragment.
  • Entire request streams into tokio so tokio can handle allowing overlapping read and write requests concurrently.
  • Do I replace RocksDb with something that can do an Async flush, or allow Rocks to be the one thing in the shard that requires a threadpool cause it doesn’t do Async requests.
  • Find a mentor, cause I feel like my code ins’t very clean.


I spent some of the holidays working on gamepad support in Tetra. It’s fairly bare-bones so far, but there’s a few nice bits in there:

  • More consistent naming than SDL
  • The ability to treat the triggers as buttons and axes simultaneously
  • Shortcuts for combining axes into a ‘stick’ vector

This week I’m hoping to get audio playback working, and possibly custom shader support. I’d also like to add a few nice higher level bits to the input module (e.g. deadzones, ways to treat a joystick and a set of buttons as one combined axis), but we’ll see if I get time!