btree
AVL balanced generic binary trees in Go (by VictorLowther)
sage
Trie data structure for storing and retrieving HTTP route values. Used for building Go HTTP router packages. (by nahojer)
btree | sage | |
---|---|---|
3 | 1 | |
18 | 0 | |
- | - | |
0.0 | 10.0 | |
almost 2 years ago | about 1 year ago | |
Go | Go | |
GNU General Public License v3.0 or later | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
btree
Posts with mentions or reviews of btree.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-05.
-
Do you use generics?
Generally when I feel like revisiting some CS staples and working out how to implement them idiomatically with generics. https://github.com/VictorLowther/btree is an example of this.
-
Immutable copy-on-write generic binary trees in Go
So, a couple of weeks ago, I wrote this. It does its job, and is pretty performant for what it is. However, I got to wondering how to make it work in an environment with many concurrent readers and a single writer. An rwmutex was too easy, so I decided to go ahead and make all tree modification copy-on-write instead. Turned out that it gets pretty acceptable performance with a couple of strategic performance optimizations.
- AVL balanced generic binary trees in Go
sage
Posts with mentions or reviews of sage.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-05.
-
Do you use generics?
I used generics in a package for building HTTP routers using a trie data structure. The generic type represent the Handler func of the routes trie, but I wanted the consumer to be able to choose the signature for the handler. For example, they might want to define their own handler func type that returns an error, or perhaps take some arbitrary extra argument. Checkout https://github.com/nahojer/sage to learn more.
What are some alternatives?
When comparing btree and sage you can also consider the following projects:
btree - BTree provides a simple, ordered, in-memory data structure for Go programs.
Mantis - Sphire Mantis is a broadly featured Go helper library with standalone packages
graph - A library for creating generic graph data structures and modifying, analyzing, and visualizing them.
go-sql-builder-benchmarks - Benchmarking Golang SQL query builders
GoLLRB - A Left-Leaning Red-Black (LLRB) implementation of balanced binary search trees for Google Go
bob - SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite
lo - 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
ibtree - Immutable generic balanced binary trees