Redcar
A real-time event-oriented data-hub, inspired by the data hub. It is:
- Universal: the front end uses gRPC to provide services.
- Fast: benchmarked 15000s of writes/s per instance and 20000s of reads/s.
- Reliable: high-performance memory storage engine and persistent back-end data warehouse.
- Secure: optional SSL client cert authentication.
Contents
Overview
Event-driven computing system architecture has become the main governance solution and technology evolution direction of various cloud vendors and cloud-native technology systems. To this end we initiated the Redcar
project, focusing on:
- Event cast, including multiple modes such as unicast, multicast, multicast and broadcast.
- Exchange, provide routing capabilities between producers and consumers through the
event bus
. - Persistence, the ability to record and monitor the entire life cycle of events.
- Replay, provides the ability to repeat historical events based on the persistent storage of events.
The vision is to explore and improve cloud event standards together with cloud native. Our goal is to achieve an event-hub.
Install
The latest release and setup instructions are available at GitHub.
Building
You can build redcar from source:
$ git clone https://github.com/redcar-io/redcar/
$ cd redcar
$ ./make
$ ./make install
This will generate a binary called ./bin/redcar
.
NOTE: you need rust 1.55+. Please check your installation with
$ rustc --version
Usage
First start a redcar machine:
$ ./bin/redcar -a 127.0.0.1:8519 -o stdout
Next, let's set a single key, and then retrieve it:
$ ./bin/redcar-ctl -e http://127.0.0.1:8519 "foo bar" put
$ ./bin/redcar-ctl -e http://127.0.0.1:8519 "foo" range
Clients
These are the clients for Redcar:
If you want to try the Go client, see Go Client.
Maintainers
Contributing
Feel free to dive in! Open an issue or submit PRs.
Redcar follows the Contributor Covenant Code of Conduct.