Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. JVM
  3. CuckooFilter4J

CuckooFilter4J

Apache-2.0Java1.0.1

A high-performance Java implementation of a Cuckoo filter, supporting deletions, counting, and concurrent operations.

GitHubGitHub
177 stars38 forks0 contributors

What is CuckooFilter4J?

CuckooFilter4J is a high-performance Java implementation of a Cuckoo filter, a probabilistic data structure that efficiently tests whether an element is a member of a set. It solves the need for space-efficient approximate membership queries with support for deletions and concurrent operations, addressing limitations of traditional Bloom filters.

Target Audience

Java developers building applications requiring efficient set-membership testing, such as databases, caching systems, network routers, or data-intensive services where low false-positive rates and dynamic updates are critical.

Value Proposition

Developers choose CuckooFilter4J for its thread-safe design, ability to delete items without extra space cost, and performance comparable to Guava's Bloom filters, making it a versatile upgrade for multi-threaded environments.

Overview

High performance Java implementation of a Cuckoo filter - Apache Licensed

Use Cases

Best For

  • Implementing duplicate detection in high-throughput data streams
  • Reducing memory usage in caching layers with eviction support
  • Building concurrent applications requiring thread-safe probabilistic data structures
  • Enhancing database query optimizations with approximate membership tests
  • Replacing Bloom filters where item deletion is necessary
  • Optimizing network packet filtering or routing with dynamic rule sets

Not Ideal For

  • Production systems requiring stable, actively maintained libraries with bug fixes and updates
  • Applications that exclusively use primitive data types and need maximum performance without garbage collection overhead
  • Projects where false negatives cannot be tolerated, as deleting non-existent items can cause them
  • Teams needing comprehensive documentation, community support, or long-term vendor reliability

Pros & Cons

Pros

Dynamic Deletion Support

Allows removal of items without additional space cost, unlike Bloom filters, which typically require counting variants for deletion.

Thread-Safe Concurrency

Supports multi-threaded operations out-of-the-box, making it suitable for concurrent applications where libraries like Guava's Bloom filter fail.

Flexible Hashing Options

Configurable with various hash algorithms, including faster xxHash and secure options like SHA, offering performance and security trade-offs.

Approximate Counting

Provides an approximate count of item insertions up to a limit, useful for tracking duplicates without the full overhead of counting Bloom filters.

Cons

Unmaintained and Buggy

The project is explicitly marked as unmaintained with known bugs, making it unreliable and risky for production use.

Performance Overhead for Objects

The main branch uses object-based operations that create garbage collection pressure, while the faster primitive branch is separate and not integrated.

Beta Thread Safety

Multithreading support is labeled as beta with potential undiscovered bugs and deadlocks, posing a risk for high-concurrency applications.

Limited Duplicate Handling

Has a maximum duplicate limit of 8-9, and exceeding this can degrade performance and cause insert failures, requiring careful management.

Frequently Asked Questions

Quick Stats

Stars177
Forks38
Contributors0
Open Issues10
Last commit3 years ago
CreatedSince 2016

Tags

#probabilistic-data-structures#java-library#hashing#apache-licensed#set-membership#bloom-filter-alternative#concurrent-collections#cuckoo-filter#performance

Built With

J
Java

Included in

JVM2.2k
Auto-fetched 9 hours ago

Related Projects

RxJavaRxJava

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

Stars48,202
Forks7,587
Last commit2 days ago
VarIntVarInt

a fast, scalable, multi-language and extensible build system

Stars25,816
Forks4,595
Last commit13 hours ago
caffeinecaffeine

A high performance caching library for Java

Stars17,848
Forks1,711
Last commit1 day ago
okiookio

A modern I/O library for Android, Java, and Kotlin Multiplatform.

Stars9,041
Forks1,235
Last commit3 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub