I’ve been working on a concurrent cuckoo filter implementation in Rust: atomic-cuckoo-filter.
A cuckoo filter is a probabilistic data structure for fast set membership testing. Unlike traditional implementations, this version uses lock-free atomic operations and is designed for high-concurrency environments.
I wonder why did you choose Cuckoo algorithm for this scenario? It uses two-jump lookup process in worst cases, which introduces some performance penalty compared to alternatives that use sequential memory scans.
In general there are filter algorithms that focus on cache-friendliness and memory-parallelism that beat Cuckoo and standard Bloom. As far as I understand the main advantage of Cuckoo (in terms of lookup speed) is that it provides predictable worst-case performance, while trading off average-case performance.