Data Structures

Generic datastructures and algorithms in Go.

Newest releases

jsa-aerial Data exploration and interactive documents; with editor support (emacs, vim, sublime, and paredit), graphics and visualization

reiver Go Porter Stemmer A native Go clean room implementation of the Porter Stemming Algorithm. This algorithm is of interest to people doing Machine Learni

dizzyliam f l o w e r A pure Nim bloom filter. A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that

RussellLuo A codec for Go structs with support for chainable encoding/decoding hooks.

amit-davidson btree is a Go implementation of a B-Tree. This project is intended for learning purposes so the code is relatively small (<500LOC) and highly documented.

sarpdag boyermoore Implementation of Boyer-Moore fast string search algorithm in Go, according to my understanding of

mmcloughlin md4 MD4 hash algorithm in Go. Assembly-optimized for amd64 platforms. MD4 is cryptographically broken and should should only be used where compatibili

rhnvrm LinkPage is a FOSS self-hosted alternative to link listing websites such as LinkTree and

josevalim The goal of this repository is to share solutions to a common problem of traversing and annotating data-structures across a variety of programming languages.

HewlettPackard structex provides annotation rules that extend Go structures for implementation of encoding and decoding of byte backed data frames.

jmattheis goverter is a tool for creating type-safe converters. All you have to do is create an interface and execute goverter.

hexops Valast converts Go values at runtime into their go/ast equivalent,

nofeaturesonlybugs Package set is a small wrapper around the official reflect package that facilitates loose type conversion and assignment into native Go types.

rsms Based on a immutable persistent Hash Array Mapped Trie (HAMT) Minimal interface to the core HAMT implementation so that you can easily implement your own structures on top of it.

RussellLuo slidingwindow Golang implementation of Sliding Window Algorithm for distributed rate limiting. Installation $ go get -u Design slidingwindow is an implement

cespare xxhash xxhash is a Go implementation of the 64-bit xxHash algorithm, XXH64. This is a high-quality hashing algorithm that is much faster than anything in the Go standard library. This package provides a straightforw

haoel Downsampling Algorthim The Golang implemtation for downsampling time series data algorthim Downsampling Algorthim Background Acknowledgement Usage Peformance Profiling Benchmark

openacid low low level data type and utils in Golang. A stable low level function set is the basis of a robust architecture. It focuses on stability and requires high test coverage. Status This project has

itsmontoya LinkedList LinkedList is a simple doubly linked-list implementation which offers: Append Prepend Remove ForEach ForEachRev Map Filter Reduce Aren't linked lists bad? I

vmarkovtsev go-lcss Fast Longest Common Substring algorithm in Go. Overview • How To Use • Installation • Contributions • License Overview Longest Common Substring (don't confuse with Longest Common Subs

TheAlgorithms The Algorithms - Go Algorithms implemented in Go (for education) These algorithms are for demonstration purposes only. There are many sort implementations in the Go standard library that may have better perfo

MaxHalford eaopt is an evolutionary optimization library Table of Contents Changelog Example Background Features Usage General advice Genetic algor

danaugrs go-tsne A Go implementation of t-Distributed Stochastic Neighbor Embedding (t-SNE), a prize-winning technique for dimensionality reduction particularly well suited for visualizing high-dimensional datasets.

murphy214 geohashtree What is it? This library is designed to construct and use large k/v stores to do super quick point-in-polygon queries. This isn't something that I haven't tried before in go but this time with a m

cornelk hashmap Overview A Golang lock-free thread-safe HashMap optimized for fastest read access. Usage Set a value for a key in the map: m := &amp;HashMap{} m.Set("amount", 123) Read a value for

shivamMg ppds Pretty Print Data Structures Stacks, queues, trees and linked lists are data structures that you might find yourself working with quite often. This library lets you pretty print these with minimum effort. Certa

muesli kmeans k-means clustering algorithm implementation written in Go What It Does k-means clustering partitions a multi-dimensional data set into k clusters, where each data point belongs to the cluster with the

0xAX go-algorithms go-algorithms - implementation of different algorithms and data structures with golang. Usage Clone repo, it must be in your $GOPATH.

raviqqe hamt Immutable and Memory Efficient Maps and Sets in Go. This package hamt provides immutable collection types of maps (associative arrays) and sets implemented as Hash-Array Mapped Tries (HAMTs). All operations o

meditativeape wikiracer Finds a path between two Wikipedia articles, using only Wikipedia links. Approach Wikiracer runs a one-way parallel BFS (Breadth First Search) from the given start URL to crawl the graph of Wikiped

mpraski Clusters Go implementations of several clustering algoritms (k-means++, DBSCAN, OPTICS), as well as utilities for importing data and estimating optimal number of clusters. The reason This library was built

stirby Just write your own map wrappers mapgen A tool which generates thread safe maps for Go. Features: Supports any key/value pair supported by Go's native maps Allows complex operations via Lock() and Unlock() Gen