← All Go categories

Data Structures and Algorithms Go Libraries Ranking

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

86 repositories, updated daily.

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

17.5K
1.8K
Yesterday
-6 weekly
View

- Modern text indexing library for go.

11.2K
715
Yesterday
+16 weekly
View

- Distributed, Fault-tolerant task queue.

8.0K
505
Yesterday
+42 weekly
View

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

8.0K
844
Yesterday
+4 weekly
View

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

4.7K
293
Yesterday
+46 weekly
View
#6

kniren/gota

Archived

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

3.3K
288
1 week ago
+0 weekly
View

- Go package implementing compressed bitsets.

2.9K
262
Yesterday
+5 weekly
View

- Go package implementing Bloom filters.

2.8K
260
Yesterday
+1 weekly
View

- Probabilistic data structures for processing continuous, unbounded streams.

1.6K
118
3 weeks ago
+0 weekly
View

- Go package implementing bitsets.

1.5K
191
6 days ago
-1 weekly
View

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

1.2K
121
2 weeks ago
+0 weekly
View

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

1.1K
116
4 days ago
+1 weekly
View

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

1.1K
85
1 week ago
+0 weekly
View

- Algorithms and data structures.CLRS study.

845
122
1 month ago
+0 weekly
View

- Trie implementation in Go.

793
117
1 week ago
+0 weekly
View

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

785
68
2 weeks ago
+0 weekly
View

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

605
31
1 week ago
+1 weekly
View

- Implementation to calculate levenshtein distance in Go.

478
32
1 week ago
+1 weekly
View

- Concurrent FIFO queue.

434
35
1 month ago
+0 weekly
View

- Fast and easy-to-use skip list for Go.

428
69
3 weeks ago
+0 weekly
View

- Go implementation of Adaptive Radix Tree.

413
63
Yesterday
+1 weekly
View

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

383
33
5 days ago
+0 weekly
View

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

367
15
Yesterday
+1 weekly
View

- In-memory geo index.

360
46
2 months 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.

306
31
1 month ago
+0 weekly
View

- Very fast Go Skiplist implementation.

295
40
3 weeks ago
+0 weekly
View

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

258
10
2 weeks ago
+0 weekly
View

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

234
38
1 month ago
+0 weekly
View

- A highly optimized double-ended queue.

204
7
2 weeks ago
+0 weekly
View

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

197
13
6 days ago
-1 weekly
View

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

168
24
1 week 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.

145
16
1 week ago
+0 weekly
View

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

143
7
2 weeks ago
+0 weekly
View

- Region quadtrees with efficient point location and neighbour finding.

141
9
3 months ago
+0 weekly
View

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

109
9
6 days ago
-1 weekly
View

- Determine how intervals relate to each other.

106
3
2 months ago
+0 weekly
View

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

104
10
2 months ago
+0 weekly
View

- Generic tuple implementation for Go 1.18+.

100
4
5 months ago
+0 weekly
View

- Go package implementing buffers for handling various datatypes easily.

99
9
2 months ago
+0 weekly
View

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

93
7
1 month ago
+0 weekly
View

- Finite-State Machine package.

88
5
6 days ago
-1 weekly
View

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

88
11
3 months ago
+0 weekly
View

- Golang Bloom filter implementation.

88
9
6 months ago
+0 weekly
View

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

84
6
6 days ago
-1 weekly
View

- Skiplist implementation in Go.

83
24
1 month ago
+0 weekly
View

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

73
6
2 months 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
4 months ago
+0 weekly
View

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

68
10
2 months ago
+0 weekly
View

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

62
9
2 months ago
+0 weekly
View

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

59
10
1 week ago
-1 weekly
View

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

55
3
2 months ago
+0 weekly
View

- A useful Set collection implementation for Go.

52
16
2 weeks ago
+0 weekly
View

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

52
5
5 months ago
+0 weekly
View

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

51
6
2 months ago
+0 weekly
View

- Go Data Structures using Go 1.18 generics.

48
4
2 months ago
+0 weekly
View

- Python-like dictionaries (dict) for Go.

48
6
2 months ago
+0 weekly
View

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

47
8
2 weeks ago
+0 weekly
View

- An implementation of prefix tree.

46
11
2 months ago
+0 weekly
View

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

45
4
1 month ago
+0 weekly
View

- A Go implementation of the Elias-Fano encoding.

42
9
2 months ago
+0 weekly
View

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

41
8
1 month ago
+0 weekly
View

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

41
1
2 months ago
+0 weekly
View

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

40
4
1 week ago
+0 weekly
View

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

38
5
2 months ago
+0 weekly
View

- Simple set data structure implementation in Go using LinkedHashMap.

30
12
5 months ago
+0 weekly
View

- Multi-String Pattern Matching Algorithm for information retrieval.

29
4
2 months ago
+0 weekly
View

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

28
0
3 months ago
+0 weekly
View

- FSM for Go.

27
0
2 days ago
+2 weekly
View

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

24
2
3 weeks ago
+0 weekly
View

- Pure, generic functions for slices.

23
1
4 months ago
+0 weekly
View

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

21
4
4 months ago
+0 weekly
View

- Iterator implementation to provide map and reduce functionalities.

20
3
1 month ago
+0 weekly
View

- fractional api for Go.

20
3
4 months ago
+0 weekly
View

- Generic pipeline functions for concurrent processing.

19
0
2 months ago
+0 weekly
View

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

18
2
1 week ago
+0 weekly
View

- Disjoint Set data structure implementation in Go.

18
1
2 months 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 months ago
+0 weekly
View

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

14
0
2 months 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 months ago
+0 weekly
View

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

9
1
3 months ago
+0 weekly
View

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

5
0
4 weeks ago
+0 weekly
View

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

5
0
1 month ago
+0 weekly
View

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

4
0
2 months ago
+0 weekly
View

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

4
0
2 months ago
+0 weekly
View

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

2
0
2 months ago
+0 weekly
View