diff --git a/.github/workflows/push.yml b/.github/workflows/build.yml similarity index 98% rename from .github/workflows/push.yml rename to .github/workflows/build.yml index 17b4c894..cce94f06 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: push test +name: build on: push: branches: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 6d5ee594..fd848502 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -1,4 +1,4 @@ -name: pr test +name: prbuild on: pull_request: branches: diff --git a/CNAME b/CNAME deleted file mode 100644 index 0be20e66..00000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -go-micro.dev \ No newline at end of file diff --git a/LICENSE b/LICENSE index 7d74e027..6e701f1a 100644 --- a/LICENSE +++ b/LICENSE @@ -176,7 +176,8 @@ END OF TERMS AND CONDITIONS - Copyright 2015 Asim Aslam. + Copyright 2015-2020 Asim Aslam. + Copyright 2019-2020 Unistack LLC. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index a71e55e6..ae2863d2 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,14 @@ -# Go Micro [![License](https://img.shields.io/:license-apache-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Go.Dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/micro/go-micro/v3?tab=overview) [![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) +# Micro [![License](https://img.shields.io/:license-apache-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Doc](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/unistack-org/micro/v3?tab=overview) [![Status](https://github.com/unistack-org/micro/workflows/build/badge.svg?branch=master)](https://github.com/unistack-org/micro/actions?query=workflow%3Abuild+branch%3Amaster+event%3Apush) [![Lint](https://goreportcard.com/badge/github.com/unistack-org/micro)](https://goreportcard.com/report/github.com/unistack-org/micro) -Go Micro is a standard library for microservices. +Micro is a standard library for microservices. ## 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. +Micro provides the core requirements for distributed systems development including RPC and Event driven communication. ## Features -Go Micro abstracts away the details of distributed systems. Here are the main features. +Micro abstracts away the details of distributed systems. Here are the main features. - **Authentication** - Auth is built in as a first class citizen. Authentication and authorization enable secure zero trust networking by providing every service an identity and certificates. This additionally includes rule @@ -23,8 +21,7 @@ level config from any source such as env vars, file, etcd. You can merge the sou CockroachDB by default. State and persistence becomes a core requirement beyond prototyping and Micro looks to build that into the framework. - **Service Discovery** - Automatic service registration and name resolution. Service discovery is at the core of micro service -development. When service A needs to speak to service B it needs the location of that service. The default discovery mechanism is -multicast DNS (mdns), a zeroconf system. +development. When service A needs to speak to service B it needs the location of that service. - **Load Balancing** - Client side load balancing built on service discovery. Once we have the addresses of any number of instances of a service we now need a way to decide which node to route to. We use random hashed load balancing to provide even distribution @@ -32,25 +29,24 @@ across the services and retry a different node if there's a problem. - **Message Encoding** - Dynamic message encoding based on content-type. The client and server will use codecs along with content-type to seamlessly encode and decode Go types for you. Any variety of messages could be encoded and sent from different clients. The client -and server handle this by default. This includes protobuf and json by default. +and server handle this by default. -- **gRPC Transport** - gRPC based request/response with support for bidirectional streaming. We provide an abstraction for synchronous communication. A request made to a service will be automatically resolved, load balanced, dialled and streamed. +- **Transport** - gRPC or http based request/response with support for bidirectional streaming. We provide an abstraction for synchronous communication. A request made to a service will be automatically resolved, load balanced, dialled and streamed. -- **Async Messaging** - PubSub is built in as a first class citizen for asynchronous communication and event driven architectures. -Event notifications are a core pattern in micro service development. The default messaging system is a HTTP event message broker. +- **Async Messaging** - PubSub is built in as a first class citizen for asynchronous communication and event driven architectures. +Event notifications are a core pattern in micro service development. - **Synchronization** - Distributed systems are often built in an eventually consistent manner. Support for distributed locking and leadership are built in as a Sync interface. When using an eventually consistent database or scheduling use the Sync interface. -- **Pluggable Interfaces** - Go Micro makes use of Go interfaces for each distributed system abstraction. Because of this these interfaces -are pluggable and allows Go Micro to be runtime agnostic. You can plugin any underlying technology. Find plugins in -[github.com/micro/go-plugins](https://github.com/micro/go-plugins). +- **Pluggable Interfaces** - Micro makes use of Go interfaces for each system abstraction. Because of this these interfaces +are pluggable and allows Micro to be runtime agnostic. ## Getting Started -See [pkg.go.dev](https://pkg.go.dev/github.com/micro/go-micro/v3?tab=overview) for usage. +To be created. ## License -Go Micro is Apache 2.0 licensed. +Micro is Apache 2.0 licensed.