Skip to content

ferrilab/ferrilab

Repository files navigation

ferrilab

Redefining the Rust fundamental data model


bitvec

bitvec crate bitvec MSRV - 1.65 bitvec license

bitvec documentation `bitvec downloads


funty

funty crate funty MSRV - 1.65 funty license

funty documentation `funty downloads


radium

radium crate radium MSRV - 1.60 radium license

radium documentation `radium downloads


Introduction

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.

Organization

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.

Why the Name?

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.

codecov coveralls

codecov

About

Experimenting with Rust's fundamental data model

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages