Awesome Go

ring

CategoryData Structures and Algorithms
SubcategoryBloom and Cuckoo Filters
Stars0

Go implementation of a high performance, thread safe bloom filter

About ring

ring - high performance bloom filter

Build
Status codecov Go Report
Card PkgGoDev GitHub
license Mentioned in Awesome
Go

Package ring provides a high performance and thread safe Go implementation of a bloom filter.

Usage

Please see the godoc for usage.

Accuracy

Running make will perform unit tests, comparing the target false positive rate with the actual rate. Here is a test against 1 million elements with a targeted false positive rate of 0.1%. Tests fail if the number of false positives exceeds the target.

=== RUN   TestBadParameters
--- PASS: TestBadParameters (0.00s)
=== RUN   TestReset
--- PASS: TestReset (0.26s)
=== RUN   TestData
--- PASS: TestData (14.07s)
=== RUN   TestMerge
--- PASS: TestMerge (13.78s)
=== RUN   TestMarshal
--- PASS: TestMarshal (14.48s)
PASS
>> Number of elements:  1000000
>> Target false positive rate:  0.001000
>> Number of false positives:  99
>> Actual false positive rate:  0.000099
>> Number of false negatives:  0
>> Actual false negative rate:  0.000000
>> Benchmark Add():  10000000          158 ns/op
>> Benchmark Test():  10000000         173 ns/op
ok      command-line-arguments  47.914s

License

Copyright (c) 2019 Tanner Ryan. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

Frequently Asked Questions

What is ring?

ring is a Data Structures and Algorithms library for the Go programming language. Go implementation of a high performance, thread safe bloom filter

How do I install ring?

Install ring with the Go module system using `go get TheTannerRyan/ring`. Check the repository for the current installation instructions.

What category does ring belong to?

ring is listed under Data Structures and Algorithms, specifically Bloom and Cuckoo Filters.

← Back to Bloom and Cuckoo Filters