Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Bigomby committed Aug 2, 2016
1 parent 983b9da commit 809055a
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,52 @@
![](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://travis-ci.org/redBorder/rbforwarder.svg?branch=develop)](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=master)
[![](https://coveralls.io/repos/github/redBorder/rbforwarder/badge.svg?branch=develop)](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, protocol agnostic and easy to use tool for
process data. It allows you to create a custom pipeline in a modular way.
processing data asynchronously. It allows you to create a custom pipeline in
a modular fashion.

For example, you can read data from a Kafka broker and use **rbforwarder** to
build a **pipeline** that decodes the JSON, filter or add some fields, encodes
the data again to JSON and send it using using multiple protocols HTTP, MQTT,
AMQP, etc. It's easy to write a **component** for the pipeline.
build a **pipeline** to decodes the JSON, filter or add fields, encode
the data again to JSON and send it using using multiple protocols `HTTP`,
`MQTT`, `AMQP`, etc. It's easy to write a pipeline **component**.

## Features
## Built-in features

- Support for multiple workers for every **component**.
- Support **buffer pooling**, for fine-grained memory control.
- Asynchronous report system. Different gorutine for send and receive responses.
- Built-in retry. The **rbforwarder** can retry messages on fail.
- Support multiple **workers** for each components.
- Support **buffer pooling** for memory recycling.
- Asynchronous report system. Get responses on a separate gorutine.
- Built-in message retrying. The **rbforwarder** can retry messages on fail.
- Instrumentation to have an idea of how it is performing the application.

## Components

- Send data to an endpoint
- MQTT
- HTTP
- Fast HTTP
- Kafka
- Decoders / Encoders
- JSON
- Utility
- Limiter
- Metrics

## Road Map

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

|Milestone | Feature | Status |
|----------|---------------------|-----------|
| 0.1 | Pipeline | _Testing_ |
| 0.2 | Reporter | _Testing_ |
| 0.3 | Limiter | _Testing_ |
| 0.4 | HTTP component | _Testing_ |
| 0.5 | MQTT component | _Pending_ |
| 0.6 | JSON component | _Pending_ |
| 0.7 | Kafka component | _Pending_ |
| 0.8 | Metrics component | _Pending_ |
| 0.9 | Benchmarks | _Pending_ |
| 1.0 | Stable | _Pending_ |
| 0.1 | Pipeline builder | Done |
| 0.2 | Reporter | Done |
| 0.3 | Buffer pool | _Pending_ |
| 0.4 | Batcher component | _Pending_ |
| 0.5 | Limiter component | _Pending_ |
| 0.6 | Instrumentation | _Pending_ |
| 0.7 | HTTP component | _Pending_ |
| 0.8 | JSON component | _Pending_ |
| 0.9 | MQTT component | _Pending_ |
| 1.0 | Kafka component | _Pending_ |

0 comments on commit 809055a

Please sign in to comment.