matryer/vice has 1,542 GitHub stars and 75 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 04:18 UTC. Last push 2022-07-22.
Go channels at horizontal scale (powered by message queues)
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
Go channels at horizontal scale 
- Use Go channels transparently over a messaging queue technology of your choice (Currently NATS, Redis or NSQ, Amazon SQS)
- Swap
vice.Transportto change underlying queueing technologies transparently - Write idiomatic Go code instead of learning queue specific APIs
- Develop against in-memory implementation before putting it into the wild
- Independent unit tests (no need for running queue technology)
PROJECT STATUS: v1 released
Usage
This code receives names on the |names| queue, and sends greetings on the |greetings|
queue:
// get a Go channel that will receive messages on the
// |names| queue
names := transport.Receive("names")
// get a Go channel that will send messages on the
// |greetings| queue
greetings := transport.Send("greetings")
// respond to |names| messages with |greetings|
for name := range names {
greetings <- []byte("Hello " + string(name))
}
- The code above is illustrative, be sure to read the design patterns
- Always stop the Transport, some technologies register and deregister their interest in the queues (this means trapping signals and gracefully shutting down services before exiting)
- Use
SendandReceivemethods to get channels, which you can then use as normal - Be sure to always handle the
ErrChan()error channel to make sure the underlying queue technology is healthy
Quick start guide
- Write your services with unit tests using normal Go channels (see our design patterns)
- Install Vice with
go get github.com/matryer/vice/... - Select a messaging queue technology
- Build a command to run your service
Read the blog post: Introducing vice: Go channels across many machines
Acknowledgements
Special thanks go to David Hernandez, Jason Hancock and Piotr Rojek for their support on this project.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,937 starspublic-apis/public-apis
A collective list of free APIs
497,199 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,550 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,178 stars