-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
24 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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_ | |