Go-lang Data Structures

Back

1. algorithms

Algorithms and data structures.CLRS study.

2. binpacker

Binary packer and unpacker helps user build custom binary stream.

3. bit

Golang set data structure with bonus bit-twiddling functions.

4. bitmap

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

5. bitset

Go package implementing bitsets.

6. bloom

Golang Bloom filter implementation.

7. bloomfilter

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

8. boomfilters

Probabilistic data structures for processing continuous, unbounded streams.

9. cmap

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

10. concurrent-writer

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

11. conjungo

A small, powerful and flexible merge library.

12. count-min-log

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

13. crunch

Go package implementing buffers for handling various datatypes easily.

14. 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 is available.

15. cuckoofilter

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

16. deque

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

17. dict

Python-like dictionaries (dict) for Go.

18. dsu

Disjoint Set data structure implementation in Go.

19. encoding

Integer Compression Libraries for Go.

20. fsm

Finite-State Machine package.

21. gdcache

A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache.

22. go-adaptive-radix-tree

Go implementation of Adaptive Radix Tree.

23. go-datastructures

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

24. go-edlib

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

25. go-ef

A Go implementation of the Elias-Fano encoding.

26. go-geoindex

In-memory geo index.

27. go-mcache

Fast in-memory key:value store/cache library. Pointer caches.

28. go-rquad

Region quadtrees with efficient point location and neighbour finding.

29. gocache

A complete Go cache library with mutiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more.

30. goconcurrentqueue

Concurrent FIFO queue.

31. gods

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

32. gofal

fractional api for Go.

33. golang-set

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

34. goset

A useful Set collection implementation for Go.

35. goskiplist

Skip list implementation in Go.

36. gostl

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

37. gota

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

38. goterator

Iterator implementation to provide map and reduce functionalities.

39. hashsplit

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

40. hide

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

41. hilbert

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

42. hyperloglog

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

43. iter

Go implementation of C++ STL iterators and algorithms.

44. levenshtein

Implementation to calculate levenshtein distance in Go.

45. merkle

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

46. merkletree

Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures.

47. mspm

Multi-String Pattern Matching Algorithm for information retrieval.

48. nan

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

49. null

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

50. ordered-concurrently

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

51. parapipe

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

52. parsefields

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

53. pipeline

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

54. ptrie

An implementation of prefix tree.

55. remember-go

A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory).

56. ring

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

57. roaring

Go package implementing compressed bitsets.

58. set

Simple set data structure implementation in Go using LinkedHashMap.

59. skiplist

Skiplist implementation in Go.

60. slices

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

61. timedmap

Map with expiring key-value pairs.

62. treap

Persistent, fast ordered map using tree heaps.

63. trie

Trie implementation in Go.

64. ttlcache

In-memory string-interface{} cache with various time-based expiration options and callbacks.

65. typ

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

66. willf/bloom

Go package implementing Bloom filters.