I’ve been programming almost exclusively in Rust for the past 3 years, with occasional forays into C++, Python, Ruby, C, and Bash, as the need arises. Throughout that time, I’ve frequently benefited from the rich ecosystem of open source libraries called “crates”, which allow me to avoid having to solve programming problems for which well-respected solutions have already been created and tested.
Over the past few days, I’ve finally released (and updated)
two crates of my own: bangle and identify.
bangleThe bangle crate provides strongly-typed floating point angles,
specified in radians, degrees, rotations, or percentages,
with efficient and ergonomic conversion between units.
Both f32 and f64 numeric types are supported,
with f32 being the implicit default.
All conversions, for each unit and numeric type, are covered by tests,
and the library has no runtime dependencies and is fully no_std compatible.
bangle is especially intended for situations where
code clarity may be enhanced by specifying or modifying angles
in units other than radians.
identifyThe identify crate provides strongly-typed UUIDs,
statically associated with other types.
This can simplify architecture and implementation,
while enhancing type safety and referential integrity,
in systems where data sets are being manipulated asynchronously
across multiple threads and/or physical locations.
(Archived blog post from 2025-06-11)
| View the | previous blog post |
| Browse | all blog posts |
| View a | random blog post |
| View the | next post by date |
| Try | my video game demo |
| Follow and support my work | |
| Visit the | homepage |
Copyright © 1998-2025 Benjamin Flaming
All rights reserved.
This website does not use cookies.
Some 3rd-party music or video players
used here may set their own cookies.