A sodium citrate crystal (source: DmiShin)#

Announcing the Citrate workspace#

Data science with rust! Finally, two years after having started to learn and develop in the Rust programming language, I am happy to find the time to write about my two projects that I have been developing in my rare spare time during the last year.

At that time, it seemed like a good idea to start right ahead writing generic frameworks to learn a new language with a type system that is hard to master and quite a few new, unfamiliar concepts. To be fair, I wanted these projects to have a real-life use to me, so I focused on the two branches of machine learning that I am most interested in… I must admit I did not even check whether any related packages exist already!

Finally, I plan on retrospectively documenting my journey from the notes I took at that time and will continuously update the links in this post. Both packages and their Python binding (another important focus of my learning process) are developed in the citrate workspace (monorepo) on GitHub. Currently, there are two projects contained in that workspace:


A flexible and generic framework for developing new flavors of a special kind of neural networks—the Self-Organizing Maps, which are an integral unit of my robotics research ([C8],[C7],[C6],[C5],[C4],[J2] [C3], [J1], [C2], [C1])


A flexible, generic and numerical data type-agnostic framework to compose models learned with Expectation Maximization

I will update this blog post with links to related posts when I publish them.