Skip to content

Commit 2555031

Browse files
authored
Update README.md
1 parent 08c644a commit 2555031

1 file changed

Lines changed: 9 additions & 26 deletions

File tree

README.md

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,34 @@
1-
# XorFilter Java Library
1+
# The jfusebin Java Library
22

3-
A Java library that provides access to high-performance XOR filters using Java's Foreign Function & Memory (FFM) API.
3+
A Java library that provides access to high-performance XOR and Binary Fuse filters using Java's Foreign Function & Memory (FFM) API.
44

55
## Overview
66

7-
This library wraps the [xorfilter](https://github.com/FastFilter/xorfilter) C library, providing Java bindings for probabilistic data structures that can efficiently test set membership with low false positive rates.
7+
This library wraps a C library, providing Java bindings for probabilistic data structures that can efficiently test set membership with low false positive rates.
88

99
## Features
1010

11-
- **Xor8 Filter**: ~0.3% false positive rate, 8 bits per key
12-
- **Xor16 Filter**: Lower false positive rate, 16 bits per key
13-
- **Binary Fuse8 Filter**: Alternative implementation with different performance characteristics
14-
- Uses Java 21's incubator FFM API for direct native calls
15-
- Memory-efficient and high-performance
11+
12+
- **Xor8 Filter**, - **Binary Fuse8 Filter**: 0.39% false positive rate, slightly over 8 bits per key, for larger inputs, the Binary Fuse8 Filter is smaller and faster
13+
- **Xor16 Filter**, - **Binary Fuse16 Filter**: 0.0015% false positive rate, slightly over 16 bits per key, for larger inputs, the Binary Fuse16 Filter is smaller and faster
14+
1615

1716
## Requirements
1817

1918
- Java 22+
20-
- GCC or compatible C compiler
21-
- macOS/Linux (Windows support would require additional configuration)
19+
- GCC, LLVM or compatible C compiler
2220

2321
## Building
2422

2523
1. Clone this repository
2624
2. Run Maven to build:
2725

2826
```bash
29-
mvn clean compile
30-
mvn exec:exec@compile-native
27+
mvn clean compile exec:exec@compile-native
3128
```
3229

33-
This will:
34-
- Compile the Java classes with JMH annotation processing
35-
- Compile the native C wrapper library
36-
- Place the native library in `target/classes/`
3730

38-
Or build everything at once:
3931

40-
```bash
41-
mvn clean compile
42-
```
4332

4433
## Usage
4534

@@ -114,9 +103,3 @@ Key results:
114103
- **Java Layer**: FFM API bindings that manage memory and call native functions
115104
- **Resource Management**: Uses ResourceScope for automatic memory management
116105

117-
## Performance
118-
119-
The filters provide:
120-
- Fast construction and lookup
121-
- Low memory overhead (~8-16 bits per key)
122-
- Configurable false positive rates

0 commit comments

Comments
 (0)