https://github.com/bigbuildbench/prataprc_xorfilter
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: BigBuildBench
- License: apache-2.0
- Language: Rust
- Default Branch: master
- Size: 193 KB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Rust library implementing xor filters
Implementation of Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters in rust-lang, Journal of Experimental Algorithmics (to appear).
This package is a port from its golang implementation.
How to use xorfilter in my rust project ?
Add the following under project's Cargo.toml:
toml
[dependencies]
xorfilter-rs = "0.2.0"
or
toml
[dependencies]
xorfilter-rs = { git = "https://github.com/bnclabs/xorfilter" }
```rust use xorfilter::Xor8;
let mut keys: Vec
let mut filter = Xor8::new(); // new filter. filter.populate_keys(&keys); // populate keys. filter.build(); // build bitmap.
for key in 0..lookup { // there can be false positives, but no false negatives. filter.contains_key(key); } ```
Open issues
- [ ] Serialize / Deserialize Xor8 type.
- [ ] Incrementally adding keys to a pre-built Xor8 instance.
- [ ] Gather benchmark results for other implementations - Go, C, C++, Erlang, Java, Python.
Benchmarks
Following are the results for a set of 10-million u64 keys:
| | build 10M keys | membership | FPP | Bits/Entry | |-------------|-----------------|-------------|---------|-------------| | Xor8-C | 1.206 secs | NA | 0.389 % | 9.84 bits | | Xor8-rust | 1.809 secs | 61.716 ns | 0.392 % | 9.84 bits | | Fuse8-C | 0.508 secs | NA | 0.390 % | 9.02 bits | | Fuse8-rust | 0.577 secs | 42.657 ns | 0.392 % | 9.02 bits | | Fuse16-C | 0.515 secs | NA | 0.001 % | 18.04 bits | | Fuse16-rust | 0.621 secs | 54.657 ns | 0.001 % | 18.03 bits |
- Build time is measured in
Seconds, for 10 million entries. - Membership is measured in
Nanosec, for single lookup in a set of 10 million entries. - FPP = False Positive Probability measured in percentage
Useful links
Contribution
- Simple workflow. Fork - Modify - Pull request.
- Before creating a PR,
- Run
make buildto confirm all versions of build is passing with 0 warnings and 0 errors. - Run
check.shwith 0 warnings, 0 errors and all test-cases passing. - Run
perf.shwith 0 warnings, 0 errors and all test-cases passing. - Install and run
cargo spellcheckto remove common spelling mistakes.
- Run
- Developer certificate of origin is preferred.
Owner
- Name: BigBuildBench
- Login: BigBuildBench
- Kind: organization
- Repositories: 1
- Profile: https://github.com/BigBuildBench
abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.
GitHub Events
Total
- Create event: 4
Last Year
- Create event: 4
Dependencies
- actions-rs/cargo v1 composite
- actions-rs/clippy-check v1 composite
- actions-rs/toolchain v1 composite
- actions-rs/toolchain v1.0.6 composite
- actions/checkout v2 composite
- criterion 0.3 development
- rand 0.7.3 development