Skip to content

mamachanko/go-nano

 
 

Repository files navigation

Build Status Coverage Status GoDoc

go-nano

A framework for writting web services in Go.

Design

Rational

Developers should focus on writing the business logic.

Highlight

  • Transport agnostic (TCP, HTTP, AMQP ...)
  • Protocol agnostic (JSON-RPC, ProtocolBuffer, ...)
  • Plain Old Go Struct for business logic
  • Handle boilerplate for setting up a service
  • Convention over configuration
  • RPC.

Components

                                    +------------ +     +---------+
                                    | Middlewares | <-> | Handler |
                                    +------------ +     +---------+
+-----------+     +----------+
| Transport | <-> | Protocol | <->
+-----------+     +----------+
                                    +------------ +     +---------+
                                    | Extensions  | <-> | Client  |
                                    +------------ +     +---------+

Features

Transports:

  • AMQP Transport (Minimal)
  • HTTP2 Transport
  • HTTP Transport

Protocols:

Client:

  • Client
  • Circuit Breaker
  • Timeout
  • Retry
  • Remote errors
  • Async

Server:

  • Multiple services namespaces (a la net/rpc)
  • Tracing middleware
  • Rate limit middleware
  • Registration

Command lines:

  • gonano request
  • gonano get
  • gonano list

Misc:

Examples

Please check examples folder

About

A framework for writting web services in Go (Alpha)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.0%
  • Shell 1.0%