<commit_before>Kuja [![godoc badge](http://godoc.org/github.com/plimble/ace?status.png)](http://godoc.org/github.com/plimble/ace)
========

Go microservice framework

##Features
- Client
    - Reuqest/Async Requests
    - Publish
    - Reties/Timeout
    - Service Discovery/Watch
    - Encoder
    - Circuit breaker
- Server
    - HTTP POST like RPC style
    - Publish/Subscribe Queue
    - Retries Queue
    - Graceful Shutdown
    - Custom Error
    - Register Etcd/Consul
    - Snappy
    - Encoder
    - Middleware
    - RateLimit

##TODO
- RateLimit
- Circuit breaker
- Trace
- Doc
- Test

##Usage

###Server

```go
type AddService struct{}

func (s *AddService) Add(ctx *Ctx, req *AddReq, resp *AddResp) error {
    resp.C = req.A + req.B
    return nil
}

func main() {
    server :=
}
```
<commit_msg>update doc<commit_after>Kuja [![godoc badge](http://godoc.org/github.com/plimble/kuja?status.png)](http://godoc.org/github.com/plimble/kuja)
========

Go microservice framework

##Features
- Client
    - Reuqest/Async Requests
    - Publish
    - Reties/Timeout
    - Service Discovery/Watch
    - Encoder
    - Circuit breaker
- Server
    - HTTP POST like RPC style
    - Publish/Subscribe Queue
    - Retries Queue
    - Graceful Shutdown
    - Custom Error
    - Register Etcd/Consul
    - Snappy
    - Encoder
    - Middleware
    - RateLimit

##TODO
- RateLimit
- Circuit breaker
- Trace
- Doc
- Test

##Usage
See in [example](https://github.com/plimble/kuja/tree/master/example)
{'fraction_non_alphanumeric': 0.12767379679144386, 'fraction_numerical': 0.0, 'mean_word_length': 2.5473933649289098, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1101145', 'n_tokens_mistral': 531, 'n_tokens_neox': 518, 'n_words': 117}