go-baseutils
genesis
go-baseutils | genesis | |
---|---|---|
2 | 8 | |
18 | 331 | |
- | 0.9% | |
4.9 | 8.3 | |
2 months ago | 22 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
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.
go-baseutils
-
Introduction to the Gkit concurrent component
Best practices for channel in concurrency, including fan_in,fan_out,map_reduce,or_done,orderly,pipeline,stream,generic version can be found at https://github.com/songzhibin97/go-baseutils/tree/main/app/bconcurrent
-
Introduction to the Gkit cache component
Cache-related components > buffer & mbuffer provide similar functionality, buffer has more encapsulation and implements some of the io interfaces, while mbuffer is just a memory cache. > local_cache provides a local data cache, and also has some expiry mechanisms, you can set the expiry time, and regularly clean up the expired data, but he is now older, if needed there is a generic version https://github.com/songzhibin97/go-baseutils/blob/main/ app/bcache > singleflight wraps golang.org/x/sync/singleflight to prevent the impact of changes
genesis
-
Iterium - Generic Channel-based Iterators (opensource project)
what's new/diff from https://github.com/life4/genesis ?
- genesis: All generic functions for Go 1.18 you ever need!
-
Go streams (a look at what is possible with generics)
I faced the same issue when migrating genesis from code generation to generics. Before it used to have the same streaming API as you describe but now I decided to go with functional API. That means, you basically "pipe" data with temporary variables. So your last example would look something like this:
-
FYI: pkg.go.dev doesn't show packages with generics
About a week ago, I upgraded my genesis package to generics. It was a great experience but somehow the new documentation wasn't displayed at pkg.go.dev (ex godoc.org). I tried to request the package in their UI, wait, add docs for the root package, explicitly list sub-packages as dependencies, nothing worked. And then I found the issue go#48264. In short, the pkg site is on Go 1.17 and so cannot parse Go 1.18b1 packages. It will be that way until Go 1.18 is released + some time on top until App Engine picks the new version up.
- genesis: generic functions for Go
What are some alternatives?
easygen - Easy to use universal code/text generator
kubernetes - Production-Grade Container Scheduling and Management
gkit - A collection of basic usability component tools dedicated to providing micro-services and single services, drawing on some excellent open source project features such as kratos, go-kit, mosn, sentinel, gopkg core components. I hope you will use and mention issue and pr more often.
consul - Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
goutil - 💪 Helper Utils(700+): int, byte, string, array/slice, map, struct, dump, convert/format, error, web/http, cli/flag, OS/ENV, filesystem, system, test/assert, time and more. Go 常用的一些工具函数:数字,字符串,数组,Map,结构体,反射,文本,文件,错误,时间日期,特殊处理,格式化,常用信息获取等等
doozerd - A consistent distributed data store.
queue - ⏪️ Go package providing multiple queue implementations. Developed in a thread-safe generic way.
etcd - Distributed reliable key-value store for the most critical data of a distributed system
Rundeck - Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts
StackStorm - StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, incident responses, troubleshooting, deployments, and more for DevOps and SREs. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html
CloudSlang - Ready-Made CloudSlang Flows and Operations
Nomad - Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.