2016-06-20 04:54:06 +03:00
# Go Micro [![License](https://img.shields.io/:license-apache-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GoDoc](https://godoc.org/github.com/micro/go-micro?status.svg)](https://godoc.org/github.com/micro/go-micro) [![Travis CI](https://api.travis-ci.org/micro/go-micro.svg?branch=master)](https://travis-ci.org/micro/go-micro) [![Go Report Card](https://goreportcard.com/badge/micro/go-micro)](https://goreportcard.com/report/github.com/micro/go-micro)
2015-01-14 02:31:27 +03:00
2017-11-30 12:16:54 +03:00
Go Micro is a pluggable RPC framework for distributed systems development.
2015-11-29 23:46:31 +03:00
2018-03-19 13:21:46 +03:00
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. It comes with built in support for {json,proto}-rpc encoding, consul or multicast dns for service discovery, http for communication and random hashed client side load balancing.
2016-06-20 04:52:38 +03:00
2018-03-19 13:21:46 +03:00
Plugins are available at [github.com/micro/go-plugins ](https://github.com/micro/go-plugins ).
2015-01-14 11:38:39 +03:00
2017-07-16 16:58:31 +03:00
Follow us on [Twitter ](https://twitter.com/microhq ) or join the [Slack ](http://slack.micro.mu/ ) community.
2016-12-25 23:53:08 +03:00
2016-12-07 19:54:19 +03:00
## Features
2016-07-03 04:49:13 +03:00
2017-06-15 21:57:27 +03:00
Go Micro abstracts away the details of distributed systems. Here are the main features.
2016-07-03 04:49:13 +03:00
2018-01-30 19:18:11 +03:00
- **Service Discovery** - Automatic service registration and name resolution
- **Load Balancing** - Client side load balancing built on discovery
2018-04-05 15:50:10 +03:00
- **Message Encoding** - Dynamic encoding based on content-type with protobuf and json support
- **Sync Streaming** - RPC based communication with support for bidirectional streaming
- **Async Messaging** - Native PubSub messaging built in for event driven architectures
2016-07-03 04:49:13 +03:00
2017-06-01 14:26:57 +03:00
Go Micro supports both the Service and Function programming models. Read on to learn more.
2018-11-14 18:18:13 +03:00
## Getting Started
2017-02-10 15:36:42 +03:00
2018-11-14 18:18:13 +03:00
For detailed information on the architecture, installation and use of go-micro checkout the [docs ](https://micro.mu/docs ).
2017-02-10 15:36:42 +03:00
2016-07-03 04:49:13 +03:00
## Learn By Example
2017-10-03 13:03:46 +03:00
An example service can be found in [**examples/service** ](https://github.com/micro/examples/tree/master/service ) and function in [**examples/function** ](https://github.com/micro/examples/tree/master/function ).
2015-01-14 11:38:39 +03:00
2016-04-26 14:18:18 +03:00
## Sponsors
2018-04-12 14:09:36 +03:00
Sixt is an Enterprise Sponsor of Micro
2016-04-26 14:18:18 +03:00
2017-02-11 17:26:47 +03:00
< a href = "https://micro.mu/blog/2016/04/25/announcing-sixt-sponsorship.html" > < img src = "https://micro.mu/sixt_logo.png" width = 150px height = "auto" / > < / a >
2018-04-12 14:09:36 +03:00
Become a sponsor by backing micro on [Patreon ](https://www.patreon.com/microhq )