← All Go categories

Data Structures and Algorithms Go Libraries Ranking

Explore and compare Data Structures and Algorithms libraries from awesome-go.

85 repositories, updated daily.

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

17.4K
1.8K
Yesterday
+6 weekly
View

- Modern text indexing library for go.

11.2K
711
Yesterday
+9 weekly
View

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

7.9K
840
3 days ago
+3 weekly
View

- Distributed, Fault-tolerant task queue.

7.7K
463
Yesterday
+43 weekly
View

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

4.7K
291
Yesterday
-2 weekly
View
#6

kniren/gota

Archived

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

3.3K
290
1 week ago
+0 weekly
View

- Go package implementing compressed bitsets.

2.9K
259
Yesterday
+0 weekly
View

- Go package implementing Bloom filters.

2.8K
259
3 days ago
+0 weekly
View

- Probabilistic data structures for processing continuous, unbounded streams.

1.6K
118
3 days ago
+1 weekly
View

- Go package implementing bitsets.

1.5K
189
Yesterday
+1 weekly
View

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

1.2K
120
Yesterday
+1 weekly
View

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

1.1K
115
2 days ago
+0 weekly
View

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

1.0K
85
3 days ago
+2 weekly
View

- Algorithms and data structures.CLRS study.

844
122
1 week ago
+0 weekly
View

- Trie implementation in Go.

791
116
4 days ago
+1 weekly
View

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

786
66
Yesterday
+1 weekly
View

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

604
29
2 weeks ago
+0 weekly
View

- Implementation to calculate levenshtein distance in Go.

471
31
4 days ago
-1 weekly
View

- Concurrent FIFO queue.

434
35
1 week ago
+0 weekly
View

- Go implementation of Adaptive Radix Tree.

412
63
1 week ago
+0 weekly
View

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

380
31
1 week ago
+0 weekly
View

- Multiple thread-safe, generic queue implementations for Go.

362
15
1 week ago
+0 weekly
View

- In-memory geo index.

360
46
1 week ago
+0 weekly
View

- 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.

307
30
Yesterday
+1 weekly
View

- Very fast Go Skiplist implementation.

296
41
2 weeks ago
+0 weekly
View

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

259
10
1 week ago
+0 weekly
View

- Binary packer and unpacker helps user build custom binary stream.

233
38
2 weeks ago
+0 weekly
View

- A highly optimized double-ended queue.

207
7
2 months ago
+0 weekly
View

- Go implementation of C++ STL iterators and algorithms.

198
13
1 week ago
+0 weekly
View

- Golang set data structure with bonus bit-twiddling functions.

167
24
2 weeks ago
+0 weekly
View

- Bloom filters implemented in Go.

147
20
1 year ago
+0 weekly
View

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

146
17
2 months ago
+0 weekly
View

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

142
7
1 week ago
+1 weekly
View

- Region quadtrees with efficient point location and neighbour finding.

141
9
2 months ago
+0 weekly
View

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

110
9
2 weeks ago
+0 weekly
View

- Determine how intervals relate to each other.

106
3
2 weeks ago
+0 weekly
View

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

104
10
2 weeks ago
+0 weekly
View

- Generic tuple implementation for Go 1.18+.

100
4
3 months ago
+0 weekly
View

- Go package implementing buffers for handling various datatypes easily.

99
9
1 month ago
+0 weekly
View

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

92
7
2 months ago
+0 weekly
View

- Finite-State Machine package.

89
5
1 month ago
+0 weekly
View

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

88
11
2 months ago
+0 weekly
View

- Golang Bloom filter implementation.

88
9
4 months ago
+0 weekly
View

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

86
5
4 weeks ago
+0 weekly
View

- Skiplist implementation in Go.

84
24
2 years ago
+0 weekly
View

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

73
6
2 weeks ago
+0 weekly
View

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

70
6
2 months ago
+0 weekly
View

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

68
10
2 weeks ago
+0 weekly
View

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

62
9
2 weeks ago
+0 weekly
View

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

61
10
2 weeks ago
+0 weekly
View

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

55
3
2 weeks ago
+0 weekly
View

- A useful Set collection implementation for Go.

53
16
2 months ago
+0 weekly
View

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

52
5
4 months ago
+0 weekly
View

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

51
6
2 weeks ago
+0 weekly
View

- Go Data Structures using Go 1.18 generics.

48
4
2 weeks ago
+0 weekly
View

- Python-like dictionaries (dict) for Go.

48
6
4 weeks ago
+0 weekly
View

- An implementation of prefix tree.

46
11
2 weeks ago
+0 weekly
View

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

46
8
2 weeks ago
+0 weekly
View

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

46
4
1 year ago
+0 weekly
View

- A Go implementation of the Elias-Fano encoding.

42
9
3 weeks ago
+0 weekly
View

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

41
1
2 weeks ago
+0 weekly
View

- Adaptive radix tree (prefix-tree or compact-trie).

41
8
2 weeks ago
+0 weekly
View

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

40
4
2 months ago
+0 weekly
View

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

38
5
2 weeks ago
+0 weekly
View

- Simple set data structure implementation in Go using LinkedHashMap.

30
12
3 months ago
+0 weekly
View

- Multi-String Pattern Matching Algorithm for information retrieval.

29
4
2 weeks ago
+0 weekly
View

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

28
0
2 months ago
+0 weekly
View

- FSM for Go.

24
0
1 week ago
+1 weekly
View

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

23
2
2 weeks ago
+0 weekly
View

- Pure, generic functions for slices.

23
1
2 months ago
+0 weekly
View

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

21
4
2 months ago
+0 weekly
View

- fractional api for Go.

20
3
2 months ago
+0 weekly
View

- Generic pipeline functions for concurrent processing.

19
0
2 weeks ago
+0 weekly
View

- Iterator implementation to provide map and reduce functionalities.

19
4
1 month ago
+0 weekly
View

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

18
2
2 weeks ago
+0 weekly
View

- Disjoint Set data structure implementation in Go.

18
1
2 weeks ago
+0 weekly
View

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

15
3
2 weeks ago
+0 weekly
View

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

14
0
2 weeks ago
+0 weekly
View

- 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.

14
2
2 weeks ago
+0 weekly
View

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

9
1
1 month ago
+0 weekly
View

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

5
0
1 week ago
+0 weekly
View

- Topological sort lib,Sorting and pruning of DAG graphs.

4
0
2 weeks ago
+0 weekly
View

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

4
0
1 month ago
+0 weekly
View

- Type-safe generic wrapper for `sync.Map` with full method parity and zero dependencies.

2
0
1 week ago
+0 weekly
View

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

2
0
3 weeks ago
+0 weekly
View