| Crates.io | atum |
| lib.rs | atum |
| version | 0.1.0 |
| created_at | 2025-11-15 22:39:54.029923+00 |
| updated_at | 2025-11-15 22:39:54.029923+00 |
| description | Lock-free bidirectional Atom Table, optimized for multi-threaded workloads |
| homepage | https://github.com/rakivo/atum |
| repository | https://github.com/rakivo/atum |
| max_upload_size | |
| id | 1934884 |
| size | 56,823 |
atumLock-free bidirectional Atom Table, optimized for maximum performance in multi-threaded workloads.
Designed for compilers, interpreters, and any system that needs fast, concurrent string interning.
use atum::AtomTable;
let tbl = AtomTable::new();
let atom = tbl.intern("Hello, Sailor!");
assert_eq!(tbl.lookup_ref(atom).as_ref(), "Hello, Sailor!");
assert_eq!(tbl.intern("Hello, Sailor!"), atom);
let guard = tbl.pin();
let strings = &[
"unfortunately", "there's", "a",
"radio", "connected", "to", "my", "brain"
];
for &s in strings {
let atom = tbl.intern_with_guard(s, &guard);
assert_eq!(tbl.lookup_ref(atom).as_ref(), s);
assert_eq!(tbl.intern_with_guard(s, &guard), atom);
}
atum?Benchmarks are going to be here soon ..
This is the first version of atum. It doesn’t yet include all advanced optimizations, but it’s already as fast or faster than
lassoin multithreaded scenarios. Future updates may improve performance further. Also: the naming is experimental, it might change.
MIT OR Apache-2.0