Skip to content

Commit

Permalink
Merge 695f539 into 1a8c423
Browse files Browse the repository at this point in the history
  • Loading branch information
Bigomby authored Aug 25, 2016
2 parents 1a8c423 + 695f539 commit a79e9e4
Show file tree
Hide file tree
Showing 34 changed files with 2,374 additions and 1,175 deletions.
16 changes: 9 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,20 @@ branches:
- develop

go:
- 1.5.2
- 1.5.4
- 1.6.3
- 1.7

script:
- $HOME/gopath/bin/goveralls

install:
- make get
- make get_dev
- go get github.com/mattn/goveralls
- go get -t ./...

script:
#- make check
- make test
- make test

after_script:
- make coverage
after_success:
- make coverage
- goveralls -coverprofile=coverage.out -service=travis-ci
29 changes: 12 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,30 +20,25 @@ errcheck:
errcheck -ignoretests -verbose ./...

vet:
@printf "$(MKL_YELLOW)Runing go vet$(MKL_CLR_RESET)\n"
@printf "$(MKL_YELLOW)Running go vet$(MKL_CLR_RESET)\n"
go vet ./...

test:
@printf "$(MKL_YELLOW)Runing tests$(MKL_CLR_RESET)\n"
go test -cover ./...
@printf "$(MKL_YELLOW)Running tests$(MKL_CLR_RESET)\n"
go test -v -race -tags=integration ./...
@printf "$(MKL_GREEN)Test passed$(MKL_CLR_RESET)\n"

coverage:
@printf "$(MKL_YELLOW)Computing coverage$(MKL_CLR_RESET)\n"
@overalls -covermode=set -project=github.com/redBorder/rbforwarder
@go tool cover -func overalls.coverprofile
@goveralls -coverprofile=overalls.coverprofile -service=travis-ci
@rm -f overalls.coverprofile

get_dev:
@printf "$(MKL_YELLOW)Installing deps$(MKL_CLR_RESET)\n"
go get golang.org/x/tools/cmd/cover
go get github.com/kisielk/errcheck
go get github.com/stretchr/testify/assert
go get github.com/mattn/goveralls
go get github.com/axw/gocov/gocov
go get github.com/go-playground/overalls
@go test -covermode=count -coverprofile=rbforwarder.part -tags=integration
@go test -covermode=count -coverprofile=batch.part -tags=integration ./components/batch
@go test -covermode=count -coverprofile=httpsender.part -tags=integration ./components/httpsender
@go test -covermode=count -coverprofile=limiter.part -tags=integration ./components/limiter
@go test -covermode=count -coverprofile=utils.part -tags=integration ./utils
@echo "mode: count" > coverage.out
@grep -h -v "mode: count" *.part >> coverage.out
@go tool cover -func coverage.out

get:
@printf "$(MKL_YELLOW)Installing deps$(MKL_CLR_RESET)\n"
go get -t ./...
go get -v ./...
78 changes: 0 additions & 78 deletions README.adoc

This file was deleted.

49 changes: 49 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
![](https://img.shields.io/packagist/l/doctrine/orm.svg?maxAge=2592000)
[![](https://travis-ci.org/redBorder/rbforwarder.svg?branch=master)](https://travis-ci.org/redBorder/rbforwarder)
[![](https://goreportcard.com/badge/github.com/redBorder/rbforwarder)](https://goreportcard.com/report/github.com/redBorder/rbforwarder)
[![](https://coveralls.io/repos/github/redBorder/rbforwarder/badge.svg?branch=master)](https://coveralls.io/github/redBorder/rbforwarder?branch=develop)
[![](https://godoc.org/github.com/redBorder/rbforwarder?status.svg)](https://godoc.org/github.com/redBorder/rbforwarder)

# rbforwarder

**rbforwarder** is an extensible tool for processing data asynchronously.
It allows you to create a custom pipeline in a modular fashion.

You can use **rbforwarder** to build a **pipeline** that decodes a JSON, filter
or add fields, encode the data again to JSON and send it using multiple
protocols `HTTP`, `MQTT`, `AMQP`, etc. It's easy to write a pipeline **component**.

## Built-in features

- Support multiple **workers** for each components.
- Asynchronous report system. Get responses on a separate goroutine.
- Built-in message retrying. **rbforwarder** can retry messages on fail.
- Instrumentation, to have an overview of how the application is performing.

## Components

- Send data to an endpoint
- MQTT
- HTTP
- Kafka
- Decoders / Encoders
- JSON
- Utility
- Limiter
- Batcher (supports deflate)

## Road Map

_The application is on hard development, breaking changes expected until 1.0._

|Milestone | Feature | Status |
|----------|---------------------|-----------|
| 0.1 | Pipeline | Done |
| 0.2 | Reporter | Done |
| 0.3 | HTTP component | Done |
| 0.4 | Batcher component | Done |
| 0.5 | Limiter component | Done |
| 0.6 | Instrumentation | _Pending_ |
| 0.8 | JSON component | _Pending_ |
| 0.9 | MQTT component | _Pending_ |
| 1.0 | Kafka component | _Pending_ |
Loading

0 comments on commit a79e9e4

Please sign in to comment.