Expand description
§PulseMap
A CPU cache-line hash table with zero-cost eviction.
Every bucket fits in exactly one 64-byte cache line with embedded LFU+LRU eviction metadata. Eviction decisions require zero additional cache misses because the priority data lives inside the metadata word that was already fetched for the fingerprint check.
§Quick Start
use pulse_map::PulseMap;
let mut map = PulseMap::new(1024);
map.insert(b"hello", b"world");
assert_eq!(map.get(b"hello"), Some(&b"world"[..]));
map.remove(b"hello");
assert_eq!(map.get(b"hello"), None);§Typed Usage
use pulse_map::TypedPulseMap;
let mut map = TypedPulseMap::<u32, u64>::new(256);
map.insert(42, 100);
assert_eq!(map.get(&42), Some(100));Structs§
- Bucket
- A 64-byte cache-line-aligned bucket containing metadata and 4 slots.
- Concurrent
Pulse Map - Thread-safe PulseMap with per-bucket locking and optional dynamic resize.
- Meta
Word - 64-bit metadata word containing state, fingerprints, and priority for 4 slots.
- Occupied
Entry - A view into an occupied entry in a TypedPulseMap.
- Pulse
MapRaw - Raw byte-level cache-line hash table with zero-cost eviction and optional TTL.
- RawIter
- Iterator over raw
(&[u8], &[u8])key-value pairs in a PulseMapRaw. - Sharded
Pulse Map - Thread-safe PulseMap sharded across 16 independent
ConcurrentPulseMaps. - Slot
- 14-byte slot that stores either inline key+value or a slab pointer.
- Typed
Iter - Iterator over typed
(K, V)pairs in a TypedPulseMap. - Typed
Pulse Map - A typed cache-line hash table with zero-cost eviction.
- Vacant
Entry - A view into a vacant entry in a TypedPulseMap.
Enums§
Traits§
- Pulse
Key - Trait for types that can be used as PulseMap keys.
- Pulse
Value - Trait for types that can be used as PulseMap values.
Type Aliases§
- Pulse
Map - A CPU cache-line hash table with zero-cost eviction.