Cute Gopher Mascot

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

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

bingo

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

See More! 🚀

crunch

Go package implementing buffers for handling various datatypes easily

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! 🚀

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! 🚀

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! 🚀

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! 🚀

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-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! 🚀

gota

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

See More! 🚀

hyperloglog

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

See More! 🚀

hilbert

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

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! 🚀

nan

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

See More! 🚀

typ

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

See More! 🚀

deque

Fast ring-buffer deque (double-ended queue)

See More! 🚀

goconcurrentqueue

Concurrent FIFO queue

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! 🚀

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! 🚀

ptrie

An implementation of prefix tree

See More! 🚀

hashsplit

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

See More! 🚀

skiplist

Very fast Go Skiplist implementation

See More! 🚀

treap

Persistent, fast ordered map using tree heaps.

See More! 🚀

skiplist

Skiplist implementation in Go

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! 🚀

binpacker

Binary packer and unpacker helps user build custom binary stream

See More! 🚀

bit

Golang set data structure with bonus bit-twiddling functions

See More! 🚀

bloom

Golang Bloom filter implementation

See More! 🚀

bloomfilter

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

See More! 🚀

ring

Go implementation of a high performance, thread safe bloom filter

See More! 🚀

goterator

Iterator implementation to provide map and reduce functionalities

See More! 🚀

goradd/maps

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

See More! 🚀

combo

Combinatorial operations including permutations, combinations, and combinations-with-replacement

See More! 🚀

go-geoindex

In-memory geo index

See More! 🚀

go-rampart

Determine how intervals relate to each other

See More! 🚀

gogu

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

See More! 🚀

hide

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

See More! 🚀

quadtree

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

See More! 🚀

slices

Pure, generic functions for slices

See More! 🚀

null

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

See More! 🚀

deque

A highly optimized double-ended queue

See More! 🚀

dsu

Disjoint Set data structure implementation in Go

See More! 🚀

set

Simple set data structure implementation in Go using LinkedHashMap

See More! 🚀

parsefields

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

See More! 🚀

trie

Trie implementation in Go

See More! 🚀

graphlib

Topological sort lib,Sorting and pruning of DAG graphs

See More! 🚀

merkle

Space-efficient computation of Merkle root hashes and inclusion proofs

See More! 🚀

treemap

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

See More! 🚀

pipeline

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

See More! 🚀

pipelines

Generic pipeline functions for concurrent processing

See More! 🚀

FSM

FSM for Go

See More! 🚀

go-ef

A Go implementation of the Elias-Fano encoding

See More! 🚀

cuckoofilter

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

See More! 🚀

ribbonGo

First pure Go implementation of Ribbon filters (practically smaller than Bloom and Xor) for space-efficient approximate set membership queries

See More! 🚀

gloop

Convenient looping using Go's range-over-func feature

See More! 🚀

concurrent-swiss-map

A high-performance, thread-safe generic concurrent hash map implementation with Swiss Map

See More! 🚀

hmap

HMap is a concurrent and secure, generic support Map implementation designed to provide an easy-to-use API

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! 🚀

deheap

Doubly-ended heap (min-max heap) with O(log n) access to both minimum and maximum elements

See More! 🚀

dqueue

Simple, in memory, zero dependency and battle tested, thread-safe deferred queue

See More! 🚀

hatchet

Distributed, Fault-tolerant task queue

See More! 🚀

list

A generic, thread-safe doubly linked list with full iterator support and an intrusive singly linked list for embedded use; a feature-rich replacement for container/list

See More! 🚀

mspm

Multi-String Pattern Matching Algorithm for information retrieval

See More! 🚀

gofal

fractional api for Go

See More! 🚀