broker | ||
client | ||
cmd | ||
codec | ||
errors | ||
metadata | ||
registry | ||
selector | ||
server | ||
transport | ||
.travis.yml | ||
function_test.go | ||
function.go | ||
go-micro.go | ||
go-micro.png | ||
LICENSE | ||
options.go | ||
publisher.go | ||
README.md | ||
service_test.go | ||
service.go | ||
wrapper_test.go | ||
wrapper.go |
Go Micro
![Go Report Card](https://goreportcard.com/badge/micro/go-micro)
Go Micro is a pluggable framework for distributed systems development.
Overview
Go Micro provides the core requirements for distributed systems development including RPC and Event driven communication. The micro philosophy is sane defaults with a pluggable architecture. We provide defaults to get you started quickly but everything can be easily swapped out.
![](https://micro.mu/docs/images/go-micro.png)
Plugins are available at github.com/micro/go-plugins.
Follow us on Twitter or join the Slack community.
Features
Go Micro abstracts away the details of distributed systems. Here are the main features.
- Service Discovery - Automatic service registration and name resolution (default: consul or mdns)
- Load Balancing - Client side load balancing built on discovery (default: random hashed)
- Message Encoding - Dynamic encoding based on content-type (default: protobuf and json-rpc)
- Sync Streaming - RPC based request/response with support for bidirectional streaming (default: http/1.1 and http2)
- Async Messaging - Native pubsub messaging built in for event driven architectures (default: point to point http)
Getting Started
See the docs for detailed information on the architecture, installation and use of go-micro.
Sponsors
Sixt is an Enterprise Sponsor of Micro
Become a sponsor by backing micro on Patreon