The ferrilab project is a collection of crates that provide more powerful
alternatives to many basic Rust types. bitvec
compresses [bool]
to use truly
single-bit storage while still matching the standard slice and vector API,
funty
allows you to be generic over properties of integers and pointers, and
radium
provides tools for abstracting over kinds of shared mutability.
Since bitvec
depends on both funty
and radium
for its functionality, these
three crates are developed in a single workspace. However, funty
and radium
stand entirely on their own and can be used independently of it.
Each crate has a much more detailed README
describing what it does and how to
use it. The project guide explains more
about how about the theory behind their creation and provides user stories that
don’t fit in the API documentation.
myrrlyn is from the Great Lakes region of America, and began bitvec
while
working at Kirtland AFB in Albuquerque. Since these crates reshape the way Rust
programs interact with the fundamental data types, the name “Fermi” jumped out
as a close analogue, and from there it was only a one-letter change to make it
fit the Rustacean community.
Both funty
and radium
are type-system crates with almost no runtime logic of
their own, so test coverage is not really meaningful for them. bitvec
is
tested heavily, and is always in need of further work on its benchmarks, use
cases, and obscure behaviors.