rsocket-rust

rsocket-rust is an implementation of the RSocket protocol in Rust.
It's an alpha version and still under active development. Do not use it in a production environment!
Example
Here are some example codes which show how RSocket works in Rust.
Server
extern crate bytes;
extern crate futures;
extern crate rsocket_rust;
use bytes::Bytes;
use futures::prelude::*;
use rsocket_rust::prelude::*;
#[test]
fn test_serve() {
RSocketFactory::receive()
.transport(URI::Tcp("127.0.0.1:7878"))
.acceptor(|setup, sending_socket| {
println!("accept setup: {:?}", setup);
std::thread::spawn(move || {
let resp = sending_socket
.request_response(
Payload::builder()
.set_data(Bytes::from("Hello Client!"))
.build(),
)
.wait()
.unwrap();
println!(">>>>> response success: {:?}", resp);
});
Box::new(MockResponder)
})
.serve()
.wait()
.unwrap();
}
Client
extern crate futures;
extern crate rsocket_rust;
use futures::prelude::*;
use rsocket_rust::prelude::*;
#[test]
fn test_client() {
let cli = RSocketFactory::connect()
.acceptor(||Box::new(MockResponder))
.transport(URI::Tcp("127.0.0.1:7878"))
.setup(Payload::from("READY!"))
.mime_type("text/plain", "text/plain")
.start()
.unwrap();
let pa = Payload::builder()
.set_data_utf8("Hello World!")
.set_metadata_utf8("Rust!")
.build();
let resp = cli.request_response(pa).wait().unwrap();
println!("******* response: {:?}", resp);
}
Dependencies
TODO
- Operations
- Transport
- Reactor
- High Level APIs