Curriculum Vitæ

H2CO3's Rants

The Last Thing Rust Needs

On the future of Rust, based on musings about programming language design by world-famous C++ expert Scott Meyers.

Patterns Are Not Expressions

In which I explain the One True Way™ you should think about patterns and pattern matching in Rust, because seemingly nobody gets it.

H2CO3's Projects

Software I'm proud of


Avocado is a statically-typed abstraction layer above MongoDB, which makes it possible to store domain model objects directly in the database.

It is built around the Rust MongoDB driver and leverages its power to provide a safe wrapper around documents and homogeneous collections. A flexible, extensible, and intuitive API is provided for maximum productivity.

Traits and generics are extensively used as the means of providing type safety and allowing any serializable type to be written to and retrieved from MongoDB. Optional JSON schema validation ensures that all data (even those produced by other clients) conform to the expectations of the document types created in Rust, for seamless interoperation.


Sparkling is a simple, compact extension language with familiar syntax, dynamic typing, automatic memory management, and safe, sound semantics.

Designed to be a modern embeddable scripting language, it provides an easy-to-use C API so that you can write bindings to native code really fast. Its code footprint is small, making it an ideal alternative to e.g. Python and JavaScript, and it runs on a reasonably efficient bytecode interpreter, making its speed comparable to that of Lua.

Sparkling also attempts to avoid many design mistakes commonly found in other languages, such as implicit globals or non-obvious implicit type conversions.