Last updated:
0 purchases
serializable bloom filter
Bloom Filter #
A simple and efficient Dart implementation of a Bloom filter, a space-efficient probabilistic data structure used to test whether an element is a member of a set.
Features #
Customizable false positive probability
Efficient space usage
Fast element insertion and querying
Serialization and deserialization support
Installation #
Add the serializable_bloom_filter package to your pubspec.yaml file:
dependencies:
serializable_bloom_filter: ^1.0.0
copied to clipboard
Then run dart pub get to install the package.
Usage #
Import the serializable_bloom_filter.dart file and create a new BloomFilter object with the desired false positive probability and number of items you expect to insert:
import 'package:serializable_bloom_filter/serializable_bloom_filter.dart';
void main() {
// Create a new Bloom filter with a false positive probability of 1% and an expected number of items of 100
BloomFilter bloomFilter =
BloomFilter(falsePositiveProbability: 0.01, numItems: 100);
// Add items to the filter
bloomFilter.add("Alice");
bloomFilter.add("Bob");
// Check if an item is in the filter
print(bloomFilter.contains("Alice")); // true
print(bloomFilter.contains("Bob")); // true
print(bloomFilter.contains("Charlie")); // false (might be true due to false positive)
}
copied to clipboard
Serialization and Deserialization #
You can serialize the Bloom filter's bit array for storage and later retrieve it:
import 'package:serializable_bloom_filter/serializable_bloom_filter.dart';
void main() {
BloomFilter bloomFilter =
BloomFilter(falsePositiveProbability: 0.01, numItems: 100);
bloomFilter.add("Alice");
bloomFilter.add("Bob");
// Serialize the Bloom filter's bit array to a byte array
List<int> byteArray = bloomFilter.serialize();
int numHashFunctions = bloomFilter.numHashFunctions;
// Save numHashFunctions and the byte array to a file or database, etc.
// ...
// Load numHashFunctions and the byte array from a file or database, etc.
// ...
// Deserialize the byte array back to the Bloom filter's bit array
final loadedBloomFilter = BloomFilter.fromNumHashFunctionsAndByteArray(
numHashFunctions: numHashFunctions, byteArray: byteArray);
print(loadedBloomFilter.contains("Alice")); // true
print(loadedBloomFilter.contains("Bob")); // true
print(loadedBloomFilter
.contains("Charlie")); // false (might be true due to false positive)
}
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.