btree
golang-set
btree | golang-set | |
---|---|---|
5 | 6 | |
3,775 | 3,925 | |
0.8% | - | |
0.0 | 5.3 | |
5 months ago | 4 months ago | |
Go | Go | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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
-
Shaving 40% Off Google’s B-Tree Implementation with Go Generics
This may be confusing to those familiar with Google's libraries. The baseline is the Go BTree, which I personally never heard of until just now, not the C++ absl::btree_set. The benchmarks aren't directly comparable, but the C++ version also comes with good microbenchmark coverage.
https://github.com/google/btree
https://github.com/abseil/abseil-cpp/blob/master/absl/contai...
-
I created an in-memory SQL database called MemSQL as a learning project
You might be interested in https://github.com/google/btree and having a default tree based around a PK. A simpler tree like an AVL or Red-Black Tree would let you do efficient range lookups for the PK as well.
- Any major projects using generics?
-
AVL balanced generic binary trees in Go
Go has generics now, and the API surface of the most popular btree implementations llrb and google don't quite match what I like from an iteration and sorting perspective. AVL has a pretty straightforward balancing model, and it turns out to be pretty performant for what I wind up doing a lot of the time.
- What are some secrets for solving tree problems during code interviews
golang-set
-
Is there something similar to blessed.rs ?
If it were true, there wouldn't be any 3rd-party libs for Go and everybody used just the stdlib. For instance, if you need a set, you can use https://github.com/deckarep/golang-set . Of course, you can do it with the stdlib with map, but if you don't want to do that, use golang-set . I think Python has a much larger stdlib and yet, Python has tons of 3rd-party packages.
-
Any major projects using generics?
golang-set is a set implementation used by docker, ethereum and others. 2.8k stars on GitHub. Pretty popular project. Not sure if it counts as major. https://github.com/deckarep/golang-set
- When will Go get sets?
-
Does anyone else get tired of the "that's trivial to implement" excuse for leaving things out of the standard library?
Why not look at something like https://github.com/deckarep/golang-set ?
-
Go 1.18 Released
It depends on the level of abstraction you're addressing. One level may be "i need to store things with a quick search function", another may be "i need a storage of ordered names and expiry date for things", etc until you get to "I need a binary tree which orders by comparable types".
Where you split that process as a separate library you either decide to write or reuse - that becomes the problem to solve. A set implementation may be a problem to solve: https://github.com/deckarep/golang-set A btree may be a problem to solve: https://gitlab.com/cznic/b/-/tree/master/v2
-
Major update to the golang-set repo now supporting generics syntax for Go 1.18beta1 release
This pre-release only exists on the generics branch at: https://github.com/deckarep/golang-set/tree/generics. Eventually this release would be tagged with a 2.0 release tag name.
What are some alternatives?
graph - A library for creating generic graph data structures and modifying, analyzing, and visualizing them.
gods - GoDS (Go Data Structures) - Sets, Lists, Stacks, Maps, Trees, Queues, and much more
concurrent-map - a thread-safe concurrent map for go
go-adaptive-radix-tree - Adaptive Radix Trees implemented in Go
hooks - Simple, type-safe hook system to enable easier modularization of your Go code.
gota - Gota: DataFrames and data wrangling in Go (Golang)
verify - Extensible, type-safe, fluent assertion Go library.
ttlcache - An in-memory cache with item expiration and generics [Moved to: https://github.com/jellydator/ttlcache]
surf - CLI Text Search across your infrastructure platforms, Universal Ctrl+F for infra
trie - Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.
go-events - :mega: Pure nodejs EventEmmiter for the Go Programming Language.
bitset - Go package implementing bitsets