Light Bitmap
A minimal, fixed-size bitmap library written in pure Rust.
no_std, no heap / alloc, no unsafe — just core.
Designed for use in embedded and resource-constrained environments.
[BitMap] is the main struct in this library. Its features
are listed below.
Examples
use ;
const BIT_COUNT: usize = 10;
let mut bitmap = bucket_count }>new;
assert_eq!;
assert!;
bitmap.set;
assert!;
assert_eq!;
Use Cases
- Embedded development
- Applications that need a compact, stack-only bitmap with no dynamic allocation
- Timing-sensitive systems where allocation unpredictability must be avoided
- Does not support SIMD or parallel execution, so it's not ideal for cases where performance needs to be fully maxed out
Features
#![no_std]compatible- Bit-level operations on a fixed number of bits
- No heap allocations (stack-only)
- Const-generic API:
BitMap<const BIT_COUNT, const BUCKET_COUNT> - Efficient iteration over all, set or unset bits:
iter()(all bits as bools)iter_ones()(indices of set bits)iter_zeros()(indices of unset bits)
- Support for bitwise ops:
&,|,^,!<<,>>&=,|=,^=,<<=,>>=
- Range operations:
set_range,unset_range - Logical operations:
popcount,first_set_bit - Rotation support:
rotate_left,rotate_right
MIT licensed. Maintained with love for bitwise enthusiasts.