gtl
b
Our great sponsors
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.
gtl
- Golang Template Library(WIP) using generics
-
Go 1.18 Released
I started a template library some time ago. It needs a bit of a clean up, but for starters it's quite decent.
https://github.com/dgrr/gtl
b
-
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
-
A generic B+Tree implementation you can use today
Requires Go1.18beta1 or later: https://gitlab.com/cznic/b/-/tree/master/v2
What are some alternatives?
go_chainable - With generics, allowing chainable .Map(func(...)).Reduce(func(...)) syntax in go
functional-go - This library is inspired by functional programming - Clojure
go-generic-optional - Implementation of Optionals in Go using Generics
go - The Go programming language
genny - Elegant generics for Go
lo - 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
golang-set - A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.
go-monads - experimental implementation of basic monads based on go2 generics draft
proposal - Go Project Design Documents