Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Go Generic Projects
-
golang-set
A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
rueidis
A fast Golang Redis client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, etc.
-
pie
🍕 Enjoy a slice! A utility library for dealing with slices and maps that focuses on type safety and performance. (by elliotchance)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
go-generics-cache
A key:value store/cache library written in Go generics. LRU, LFU, FIFO, MRU, Clock support.
-
orm
A lightweight yet powerful, fast, customizable, type-safe object-relational mapper for the Go programming language. (by golobby)
-
gostream
A Go port of the Java Streams API. Type-safe and functional Go Streams processing for Go 1.18+.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
On the other hand, I advise you NOT to use this kind of library and write simple, fast go code most of the time, with the occasional generics helper. Why the hell would I clutter my code with, for example: https://github.com/samber/lo?tab=readme-ov-file#fromentries-...
Project mention: Show HN: A comprehensive, efficient, and reusable util function library of Go | news.ycombinator.com | 2024-02-20
Project mention: Functional Programming Library for Golang by IBM | news.ycombinator.com | 2023-08-17A simple alternative is the combination of:
- https://github.com/samber/lo
- https://github.com/samber/mo
The split is also nice as you can choose to just use the generic convenience functions from lo without the more FP related things from mo.
Project mention: Show HN: A Cache-Aside Pattern Implementation Enhanced by Client Side Caching | news.ycombinator.com | 2023-07-16
gomacro added macros and generics several years before generics reached release.
Project mention: v3.1.0 of ttlcache - an in-memory cache with item expiration and generics | /r/golang | 2023-08-25
Time to deal with the large elephant in the room, the runtime.mapaccess2_fast64 map lookup. Despite spending some hours of research, I couldn't found any viable way to optimize the builtin map. However, there is a community alternative called Swiss Map, which sells itself as faster and more memory efficient than the builtin one. Replacing it is almost a drop-in, with just some syntax changes:
Project mention: Enum: Type safe enums for Go without code generation or reflection | news.ycombinator.com | 2023-08-30
Go Generics related posts
-
One Billion Row Challenge in Golang - From 95s to 1.96s
-
Golang Port of Abseil's SwissTable
-
Go is not an easy language (2021)
-
v3.1.0 of ttlcache - an in-memory cache with item expiration and generics
-
Functional Programming Library for Golang by IBM
-
A lightweight Golang generics library that provides Map, Reduce and more
-
A lightweight Golang generics library that provides Map, Reduce and more
-
A note from our sponsor - InfluxDB
www.influxdata.com | 10 May 2024
Index
What are some of the best open-source Generic projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | lo | 15,472 |
2 | golang-set | 3,935 |
3 | lancet | 3,704 |
4 | mo | 2,274 |
5 | rueidis | 2,197 |
6 | gomacro | 2,133 |
7 | pie | 1,830 |
8 | do | 1,603 |
9 | gen | 1,432 |
10 | generic | 1,270 |
11 | goderive | 1,180 |
12 | ttlcache | 847 |
13 | swiss | 681 |
14 | go-generics-cache | 427 |
15 | genesis | 331 |
16 | enum | 331 |
17 | kago | 186 |
18 | async | 184 |
19 | functools | 177 |
20 | slices | 171 |
21 | orm | 156 |
22 | gostream | 146 |
23 | assert | 133 |
Sponsored