Skip to content

Releases: itsfoxstudio/pgm-extra-rs

v1.3.0 - Zero-Copy Serialization Support (rkyv)

29 Dec 07:40

Choose a tag to compare

About

Added zero-copy serialization support via rkyv.

Highlights

  • Zero-copy deserialization — Access archived data directly without copying
  • Full type coverage — All index types and collections support rkyv
  • Cache-aware serialization — Hot cache is correctly skipped and rebuilt on deserialize

Features

  • rkyv — Zero-copy serialization/deserialization with rkyv

Usage

[dependencies]
pgm-extra = { version = "1.2.3", features = ["rkyv"] }
let set: pgm_extra::Set<u64> = (0..1000).collect();
let bytes = rkyv::to_bytes::<rkyv::rancor::Error>(&set).expect("Unable to serialize into bytes.");
let archived = rkyv::access::<rkyv::Archived<Set<u64>>, rkyv::rancor::Error>(&bytes).expect("Unable to zero-copy deserialize.");
let restored: Set<u64> = rkyv::deserialize(archived).expect("Unable to deserialize back to original type.");

Links

License

MIT © 2025 Fox Studio (Oskar Cieslik)

v1.2.2 - Initial Public Release

02 Dec 15:38

Choose a tag to compare

This is the first public release of pgm-extra, a high-performance Rust implementation of the PGM-index.

About

A learned index structure based on the PGM-index paper by Ferragina & Vinciguerra. Includes drop-in replacements for BTreeSet and BTreeMap.

Highlights

• 1.7x faster queries than BTreeSet on 1M random keys
• 3x less memory overhead compared to standard B-trees
• O(log n / log ε) query time with O(n / ε) space

Features

• Index Types: Static (multi-level recursive), OneLevel (simple), Dynamic (mutable with auto-rebuild)
• Collections: Set and Map as drop-in replacements for BTreeSet / BTreeMap
• Generic: Works with all integer types (signed and unsigned)
• no_std support: Usable on embedded / WASM targets
• Optional features:
• parallel — Parallel index construction via Rayon
• simd — SIMD-accelerated linear search
• serde — Serialization / deserialization support

Installation

[dependencies]
pgm-extra = "1.2.2"

Links

• Documentation
• crates.io

License

MIT © 2025 Fox Studio (Oskar Cieslik)