go-datastructures is a collection of thread-safe and lock-free data structures designed for high-performance concurrent applications in Go. It provides a modular library of specialized algorithmic toolsets, including a lock-free collection library and an immutable data structure library.
The project distinguishes itself through a suite of persistent AVL trees and hash array mapped tries that use branch-copying to preserve previous versions. It also implements non-blocking hash maps, queues, and tries that enable linearizable snapshots and concurrent updates without the use of mutual exclusion locks.
The library covers a broad range of capability areas, including dimensional indexing for range querying, graph algorithms optimized with Fibonacci heaps, and fast integer set operations using sparse bitmaps. It further includes ordered collections such as skiplists and B+ trees, as well as multithreaded bucket sorting for large datasets.
The toolset also provides synchronization primitives like thread-safe ring buffers and event broadcasting mechanisms for coordinating execution between Go routines.