Skip to main content

Command Palette

Search for a command to run...

Rats - A Category Theory Library for Rust

Published
2 min read
Rats - A Category Theory Library for Rust
P

JVM based developer for over 6 years (Scala, Java, Clojure).

Experience with distributed algorithms using Apache Flink and Apache Spark.

Experience with high performance simulation development using C++ and Fortran

Interested in the Rust programming language and programming language design in general.

Contributor to the Foresight Autonomous Driving project for BMW through their joint venture with Critical Software, Critical Techworks.

The project is developed in Scala, using Apache Flink and Apache park to process map data and events. Through this project I am able to further improve my knowledge of Functional Programming and distributed algorithms.

With the support of Critical Techworks I am also a lead on the Community of Practices for the Rust Development language, where interested developers are able to learn and discuss this new programming language.

From the end of 2018 to the end of 2019 I've worked as a Calypso developer for the back office at Natixis Porto.

The first 4 years of my career I worked with the Brazilian Navy, developing simulators for the Mercantile Navy. During this period I was able to learn and develop my skills as a programmer. Over the last two years at the project I was assigned the role of Technical Manager in the project, where I was tasked with the decisions over our technology stack, tools and processes.

There we successfully migrated from SVN to Git using a self hosted GitLab instance, implemented a CI pipeline and moved old support systems (such as file sharing servers and databases) to newer and more modern technologies. The success of these migrations in the project raised the interest of the rest of the development group, and many projects are moving to the same processes we implemented here. In March 2018 my team and I released the first version of our simulator for the Mercantile Navy School in Rio de Janeiro. An article about the inauguration can be found in the following link (in portuguese):

https://www.marinha.mil.br/ciaga/node/425

Technical information about the simulator can be found in the following link (in Portuguese):

https://www.marinha.mil.br/ipqm/node/114

From September 2014 to June 2018 I contributed as a tutor for the CEDERJ foundation, where I helped students on topics such as Programming using Pascal and Python, basic computing using Libre Office tools and mathematics courses for Computer Science courses.

Yeah, things have been slow on my end.

With the imminent stabilization of GATs (Generic Associated Types) on Rust (read more here) a way around the the lack of HKTs (Higher Kinded Types) on Rust is being introduced.

This is just a bunch of fancy words for saying that now you can write a proper Monad in Rust!

Having this in mind I am happy to introduce a new project, Rats. The goal is to have a proper full Categories library implementation, including typelasses, datatypes and effects.

Tha name is a play on the Cats library from the Scala ecosystem, which is where most of my experience on pure FP comes from. Of course, Cats is itself a play on the word Categories. So it is bad jokes all the way down.

Feel free to go on our Github or contact us through Gitter. Help is always welcome!

Once we have are close to a version 1.0 I will write a post about being my experience with it.

See yall soon! Stay safe, stay healthy