Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qingwave/gocorex
Gocorex is a collection golang useful utils for golang application, distributed system and microservices.
https://github.com/qingwave/gocorex
bloom-filter cron data-structures distributed distributed-lock etcd go golang redis service-discovery
Last synced: 3 months ago
JSON representation
Gocorex is a collection golang useful utils for golang application, distributed system and microservices.
- Host: GitHub
- URL: https://github.com/qingwave/gocorex
- Owner: qingwave
- License: apache-2.0
- Created: 2022-07-25T10:05:25.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-19T07:22:59.000Z (about 1 year ago)
- Last Synced: 2024-10-04T04:52:47.334Z (4 months ago)
- Topics: bloom-filter, cron, data-structures, distributed, distributed-lock, etcd, go, golang, redis, service-discovery
- Language: Go
- Homepage:
- Size: 129 KB
- Stars: 32
- Watchers: 4
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gocorex
Gocorex is a collection golang useful utils for distributed system and microservices.
## Features
### Distributed Bloom Filter
- [Redis Bloom](bloom)### Distributed Rate Limiter
- [Redis RateLimiter](rate)### Distributed Lock
- [Redis Lock](syncx/redislock)
- [Etcd Lock](syncx/etcdlock)
- [ZooKeeper Lock](syncx/zklock)### Service Discovery
- [Etcd discovery](discovery/etcdiscovery/)
- [ZooKeeper discovery](discovery/zkdiscovery/)### PubSub
- [PubSub](pubsub)
- [Etcd PubSub](pubsub/etcdpubsub)### Cron
- [Cron with min-heap](cron/cron.go), implemented by minimal heap
- [TimeWheel](cron/timewheel.go)### Concurrency
- [Group](syncx/group/group.go), wrap the WaitGroup
- [ErrGroup](syncx/group/errgroup.go), run groups of goroutines, context cancel when meet error
- [CtrlGroup](syncx/group/ctrlgroup.go), run special number goroutines### Metrics
- [Http state metrics](metrics/http.go), http prometheus metrics handler middleware### Data structures
- [Set](containerx/set.go), hash set with generics
- [Heap](containerx/heap.go), heap with generics
- [Queue](containerx/queue.go), queue with generics
- [Ring](containerx/ring.go), ring queue with generics### utils
- [trace](trace), recoding the latency of operations
- [retry](retry), retry operation on conditional