Crates.io | splinter-rs |
lib.rs | splinter-rs |
version | |
source | src |
created_at | 2025-03-29 20:42:01.130504+00 |
updated_at | 2025-03-29 20:42:01.130504+00 |
description | A compressed bitmap format optimized for small, sparse sets of u32s with zero-copy querying. |
homepage | https://github.com/orbitinghail/splinter-rs |
repository | https://github.com/orbitinghail/splinter-rs |
max_upload_size | |
id | 1611671 |
Cargo.toml error: | TOML parse error at line 19, column 1 | 19 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Splinter is a compressed bitmap format similar to Roaring, optimized specifically for small, sparse sets of 32-bit unsigned integers (u32
).
Tree-based Encoding: Splinter encodes u32
values into a 256-way tree structure by decomposing integers into big-endian component bytes. Leaf nodes efficiently transition from byte lists to compact bitmaps at up to 32 values.
Zero-copy Access: Designed for efficient querying without deserialization, the SplinterRef
type allows direct, zero-copy reads from any type implementing AsRef<[u8]>
.
header (4 bytes)
magic (2 bytes)
unused (2 bytes)
footer (4 bytes)
partitions (2 bytes)
unused (2 bytes)
block (cardinality)
cardinality == 256
data: OMITTED
cardinality < 32
data: [u8; cardinality]
else
data: [u8; 32]
index (cardinality, offset_size: u16|u32)
keys: block(cardinality)
cardinalities: [u8; cardinality] // 1 based
offsets: [offset_size; cardinality]
map (cardinality, off_type, val_type)
values: [val_type(index->cardinalities[i]); cardinality]
index (cardinality, off_type)
splinter
header
map (footer->partitions, u32,
map (cardinality, u32,
map (cardinality, u16, block)))
footer
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.