Skip to content

rsocket/rsocket-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

rsocket-rust

Crates.io Crates.io License GitHub Release

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); // TODO: use tokio runtime? 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
    • METADATA_PUSH
    • REQUEST_FNF
    • REQUEST_RESPONSE
    • REQUEST_STREAM
    • REQUEST_CHANNEL
  • Transport
    • TCP
    • Websocket
  • Reactor
    • ...
  • High Level APIs
    • Client
    • Server

About

RSocket Rust Implementation using Tokio

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 9