serializable_bloom_filter 1.0.0 copy "serializable_bloom_filter: ^1.0.0" to clipboard
serializable_bloom_filter: ^1.0.0 copied to clipboard

Simple and efficient implementation of bloom filters.

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

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)
}

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)
}
5
likes
150
points
20
downloads

Publisher

verified publisherflutterflow.io

Weekly Downloads

Simple and efficient implementation of bloom filters.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

More

Packages that depend on serializable_bloom_filter