whatisgithub

What is boomfilters?

tylertreat/boomfilters — explained in plain English

Analysis updated 2026-07-20 · repo last pushed 2025-11-17

1,646GoAudience · developerComplexity · 3/5QuietLicenseSetup · easy

In one sentence

A Go library that provides memory-efficient data structures for processing endless data streams, allowing you to track, count, and estimate items with a small, configurable margin of error.

Mindmap

mindmap
  root((repo))
    What it does
      Tracks streaming data
      Estimates unique items
      Counts item frequency
      Deduplicates events
    How it works
      Uses approximate answers
      Evicts old data
      Conserves memory
    Tech stack
      Go
    Use cases
      Live dashboards
      Trending hashtags
      Error tracking
    Audience
      Developers
      Data engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Deduplicate incoming events in a live dashboard so actions are not counted twice.

USE CASE 2

Estimate the number of unique users visiting a site using minimal memory.

USE CASE 3

Track the most frequent items in a stream like top trending hashtags.

USE CASE 4

Estimate how often specific errors occur in a system.

What is it built with?

Go

How does it compare?

tylertreat/boomfiltersf/mcptoolsdevenjarvis/lathe
Stars1,6461,5901,560
LanguageGoGoGo
Last pushed2025-11-172026-06-27
MaintenanceQuietActive
Setup difficultyeasyeasyeasy
Complexity3/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Installable via Go modules with no external dependencies or infrastructure required.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

Boom Filters is a collection of tools for managing data that never stops flowing. Imagine you have a firehose of information, like website clicks, sensor readings, or financial transactions, and you need to quickly check if you have seen a specific item before, count how many times something has happened, or estimate how many unique items exist. This project gives developers a toolbox to do all of that efficiently without needing massive amounts of memory. Traditional tools for tracking data require you to know how much data you will have upfront. If you guess too small, the tool eventually breaks down and starts falsely reporting that it has seen everything. The structures in this project solve that problem by accepting tiny trade-offs. Instead of giving perfect answers, they provide answers that are accurate within a small, predictable margin. For example, a tool might occasionally say it saw an item when it actually did not, but you can configure exactly how often that happens. A developer building a live dashboard might use this to deduplicate incoming events so the same action is not counted twice. If they need to know roughly how many unique users visited a site today, they can use a tool here that estimates the total using a fraction of the memory normally required. Another tool can track the most frequent items in a stream, like the top trending hashtags, or estimate how often specific errors occur in a system. The appropriate tool depends on whether the developer needs to add and remove items, or if they just need a fast, read-only summary. What makes these tools notable is their focus on unbounded streams. Rather than holding an entire dataset in memory, they use clever math to continuously evict old information or summarize data on the fly. This allows applications to process real-time data continuously without eventually crashing from running out of memory. Each tool makes a specific trade-off between memory usage, speed, and accuracy, allowing developers to pick the exact balance that fits their application.

Copy-paste prompts

Prompt 1
How do I use the Count-Min Bloom Filter from the boomfilters Go library to track the top 5 most frequent hashtags in an infinite stream of tweets?
Prompt 2
Show me an example of using a Cuckoo Filter from the boomfilters library to deduplicate events in a live stream, with the ability to add and remove items.
Prompt 3
How do I configure the error rate and memory usage of the HyperLogLog implementation in this library to estimate unique visitors with a 1% margin of error?
Prompt 4
Write a Go program using the boomfilters library that reads from a continuous stream of simulated financial transactions and prints an estimate of total unique items seen.

Frequently asked questions

What is boomfilters?

A Go library that provides memory-efficient data structures for processing endless data streams, allowing you to track, count, and estimate items with a small, configurable margin of error.

What language is boomfilters written in?

Mainly Go. The stack also includes Go.

Is boomfilters actively maintained?

Quiet — no commits in 6-12 months (last push 2025-11-17).

What license does boomfilters use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is boomfilters to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is boomfilters for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.