Cute Gopher Mascot

The Best Go Libraries For Data Structures and Algorithms (76)

Discover the best Go libraries for Data Structures and Algorithms! Find the perfect tools to streamline your development and boost productivity. From bingo to bit, we've got you covered. Let the coding begin!

bingo

Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes.

See More! 🚀

bit

Golang set data structure with bonus bit-twiddling functions.

See More! 🚀

binpacker

Binary packer and unpacker helps user build custom binary stream.

See More! 🚀

crunch

Go package implementing buffers for handling various datatypes easily.

See More! 🚀

go-ef

A Go implementation of the Elias-Fano encoding.

See More! 🚀

roaring

Go package implementing compressed bitsets.

See More! 🚀

bitmap

Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go.

See More! 🚀

bitset

Go package implementing bitsets.

See More! 🚀

bloom

Go package implementing Bloom filters.

See More! 🚀

bloom

Bloom filters implemented in Go.

See More! 🚀

bloom

Golang Bloom filter implementation.

See More! 🚀

bloomfilter

Yet another Bloomfilter implementation in Go, compatible with Java's Guava library.

See More! 🚀

boomfilters

Probabilistic data structures for processing continuous, unbounded streams.

See More! 🚀

cuckoo-filter

Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper are available.

See More! 🚀

goradd/maps

Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc.

See More! 🚀

cuckoofilter

Cuckoo filter: a good alternative to a counting bloom filter implemented in Go.

See More! 🚀

ring

Go implementation of a high performance, thread safe bloom filter.

See More! 🚀

algorithms

Algorithms and data structures.CLRS study.

See More! 🚀

go-datastructures

Collection of useful, performant, and thread-safe data structures.

See More! 🚀

gods

Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.

See More! 🚀

gostl

Data structure and algorithm library for go, designed to provide functions similar to C++ STL.

See More! 🚀

goterator

Iterator implementation to provide map and reduce functionalities.

See More! 🚀

iter

Go implementation of C++ STL iterators and algorithms.

See More! 🚀

cmap

a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards.

See More! 🚀

dict

Python-like dictionaries (dict) for Go.

See More! 🚀

go-shelve

A persistent, map-like object for the Go programming language. Supports multiple embedded key-value stores.

See More! 🚀

concurrent-writer

Highly concurrent drop-in replacement for `bufio.Writer`.

See More! 🚀

conjungo

A small, powerful and flexible merge library.

See More! 🚀

count-min-log

Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).

See More! 🚀

fsm

Finite-State Machine package.

See More! 🚀

genfuncs

Go 1.18+ generics package inspired by Kotlin's Sequence and Map.

See More! 🚀

go-generics

Generic slice, map, set, iterator, and goroutine utilities.

See More! 🚀

go-geoindex

In-memory geo index.

See More! 🚀

go-rampart

Determine how intervals relate to each other.

See More! 🚀

go-rquad

Region quadtrees with efficient point location and neighbour finding.

See More! 🚀

go-tuple

Generic tuple implementation for Go 1.18+.

See More! 🚀

go18ds

Go Data Structures using Go 1.18 generics.

See More! 🚀

memlog

An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka.

See More! 🚀

gofal

fractional api for Go.

See More! 🚀

gogu

A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library.

See More! 🚀

gota

Implementation of dataframes, series, and data wrangling methods for Go.

See More! 🚀

hide

ID type with marshalling to/from hash to prevent sending IDs to clients.

See More! 🚀

hilbert

Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.

See More! 🚀

hyperloglog

HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.

See More! 🚀

quadtree

Generic, zero-alloc, 100%-test covered quadtree.

See More! 🚀

queue

Multiple thread-safe, generic queue implementations for Go.

See More! 🚀

slices

Functions that operate on slices; like `package strings` but adapted to work with slices.

See More! 🚀

slices

Pure, generic functions for slices.

See More! 🚀

nan

Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers.

See More! 🚀

null

Nullable Go types that can be marshalled/unmarshalled to/from JSON.

See More! 🚀

typ

Null Types, Safe primitive type conversion and fetching value from complex structures.

See More! 🚀

deque

A highly optimized double-ended queue.

See More! 🚀

deque

Fast ring-buffer deque (double-ended queue).

See More! 🚀

goconcurrentqueue

Concurrent FIFO queue.

See More! 🚀

dsu

Disjoint Set data structure implementation in Go.

See More! 🚀

golang-set

Thread-Safe and Non-Thread-Safe high-performance sets for Go.

See More! 🚀

goset

A useful Set collection implementation for Go.

See More! 🚀

set

Simple set data structure implementation in Go using LinkedHashMap.

See More! 🚀

bleve

Modern text indexing library for go.

See More! 🚀

go-adaptive-radix-tree

Go implementation of Adaptive Radix Tree.

See More! 🚀

go-edlib

Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode.

See More! 🚀

levenshtein

Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix.

See More! 🚀

levenshtein

Implementation to calculate levenshtein distance in Go.

See More! 🚀

mspm

Multi-String Pattern Matching Algorithm for information retrieval.

See More! 🚀

parsefields

Tools for parse JSON-like logs for collecting unique fields and events.

See More! 🚀

ptrie

An implementation of prefix tree.

See More! 🚀

trie

Trie implementation in Go.

See More! 🚀

hashsplit

Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position.

See More! 🚀

merkle

Space-efficient computation of Merkle root hashes and inclusion proofs.

See More! 🚀

skiplist

Very fast Go Skiplist implementation.

See More! 🚀

skiplist

Skiplist implementation in Go.

See More! 🚀

treap

Persistent, fast ordered map using tree heaps.

See More! 🚀

treemap

Generic key-sorted map using a red-black tree under the hood.

See More! 🚀

ordered-concurrently

Go module that processes work concurrently and returns output in a channel in the order of input.

See More! 🚀

parapipe

FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results.

See More! 🚀

pipeline

An implementation of pipelines with fan-in and fan-out.

See More! 🚀