Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aesteve/vertx-eventbus-client-rs

Rust client for Vert.x TCP event-bus bridge
https://github.com/aesteve/vertx-eventbus-client-rs

crates-io eventbus eventbus-library rust rust-lang rust-library vertx vertx3

Last synced: 2 months ago
JSON representation

Rust client for Vert.x TCP event-bus bridge

Awesome Lists containing this project

README

        

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Crates.io Version](https://img.shields.io/crates/v/vertx-eventbus-bridge.svg)](https://crates.io/crates/vertx-eventbus-bridge)
[![codecov](https://codecov.io/gh/aesteve/vertx-eventbus-client-rs/branch/master/graph/badge.svg)](https://codecov.io/gh/aesteve/vertx-eventbus-client-rs)

## Vert.x TCP EventBus client for Rust

Vert.x allows to expose its event-bus through a [TCP socket](https://vertx.io/docs/vertx-tcp-eventbus-bridge/java/).
This crate offers primitives in the Rust programming language to interact with the event bus over this TCP connection.

This allows to send messages from a Rust codebase (embedded sensors for instance) to a running Vert.x instance, or reacting to event bus messages published from the Vert.x application in a Rust codebase.

## Early stage

This project is still in early development phase, although it's available as a [crate](https://crates.io/crates/vertx-eventbus-bridge) if you need it.
The design (at the moment: iterators over incoming messages) is highly suggest to change.

Any proposition or technical comment is highly welcomed in the issues.

## Testing

In order to test the client against a "real" TCP Event-Bus bridge (and avoid observator-bias: testing my own understanding of the protocol), [this docker image](https://hub.docker.com/layers/aesteve/tests/mock-eventbus-server/images/sha256-90eff1e74362118b41ec7fc7a22ecd180a6c2c07206083dec9885d6b61edd24c?context=repo) is used, through testcontainers.
The code for this image can be found [here](https://github.com/aesteve/vertx-eventbus-mock-server), it's a simple Vert.x application listening/publishing to the Event-Bus and exposing it through TCP on port 7542.