Go Data structures

Open-source Go projects categorized as Data structures

Top 23 Go Data structure Projects

  • GitHub repo gods

    GoDS (Go Data Structures). Containers (Sets, Lists, Stacks, Maps, Trees), Sets (HashSet, TreeSet, LinkedHashSet), Lists (ArrayList, SinglyLinkedList, DoublyLinkedList), Stacks (LinkedListStack, ArrayStack), Maps (HashMap, TreeMap, HashBidiMap, TreeBidiMap, LinkedHashMap), Trees (RedBlackTree, AVLTree, BTree, BinaryHeap), Comparators, Iterators, Enumerables, Sort, JSON

    Project mention: Have you used a trie in Go? | reddit.com/r/golang | 2021-02-18

    You may want to try this implementation

  • GitHub repo go-datastructures

    A collection of useful, performant, and threadsafe Go datastructures.

  • GitHub repo Go

    Algorithms Implemented in GoLang (by TheAlgorithms)

    Project mention: Gopher Gold #15 - Wed Oct 14 2020 | dev.to | 2020-10-14

    TheAlgorithms/Go (Go): Algorithms Implemented in GoLang

  • GitHub repo golang-set

    A simple set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.

  • GitHub repo gota

    Gota: DataFrames and data wrangling in Go (Golang)

  • GitHub repo nutsdb

    A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.

  • GitHub repo boomfilters

    Probabilistic data structures for processing continuous, unbounded streams.

  • GitHub repo roaring

    Roaring bitmaps in Go (golang)

  • GitHub repo willf/bloom

    Go package implementing Bloom filters

  • GitHub repo gocache

    ☔️ A complete Go cache library that brings you multiple ways of managing your caches

  • GitHub repo cuckoofilter

    Cuckoo Filter: Practically Better Than Bloom

  • GitHub repo hyperloglog

    HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction)

  • GitHub repo dasel

    Query, update and convert data structures from the command line. Comparable to jq/yq but supports JSON, TOML, YAML, XML and CSV with zero runtime dependencies.

    Project mention: Parsing JSON at the CLI: A Practical Introduction to jq (and more!) | reddit.com/r/commandline | 2020-12-21

    Cool tool, thanks for sharing. I also like this one which is more complex like jq but also supports many different data formats https://github.com/TomWright/dasel

  • GitHub repo bitset

    Go package implementing bitsets

  • GitHub repo trie

    Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.

  • GitHub repo algorithms

    CLRS study. Codes are written with golang. (by shady831213)

  • GitHub repo graph

    Graph algorithms and data structures (by yourbasic)

  • GitHub repo go-geoindex

    Go native library for fast point tracking and K-Nearest queries

  • GitHub repo gostl

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

  • GitHub repo merkletree

    A Merkle Tree implementation written in Go.

  • GitHub repo hilbert

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

  • GitHub repo goskiplist

    A skip list implementation in Go

  • GitHub repo ttlcache

    An in-memory string-interface{} map with various expiration options for golang

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-02-18.

Index

What are some of the best open-source Data structure projects in Go? This list will help you:

Project Stars
1 gods 9,659
2 go-datastructures 5,934
3 Go 4,914
4 golang-set 1,842
5 gota 1,534
6 nutsdb 1,514
7 boomfilters 1,323
8 roaring 1,104
9 willf/bloom 963
10 gocache 762
11 cuckoofilter 758
12 hyperloglog 738
13 dasel 736
14 bitset 649
15 trie 525
16 algorithms 479
17 graph 425
18 go-geoindex 328
19 gostl 245
20 merkletree 232
21 hilbert 225
22 goskiplist 224
23 ttlcache 209