@@ -13,30 +13,45 @@ It's an **alpha** version and still under active development.
1313
1414> Here are some example codes which show how RSocket works in Rust.
1515
16+ ### Dependencies
17+
18+ Add dependencies in your ` Cargo.toml ` .
19+
20+ ``` toml
21+ [dependencies ]
22+ tokio = " 0.2"
23+ rsocket_rust = " *"
24+
25+ # choose transport:
26+ # rsocket_rust_transport_tcp = "*"
27+ # rsocket_rust_transport_websocket = "*"
28+ ```
29+
1630### Server
1731
1832``` rust
19- extern crate rsocket_rust;
20- extern crate tokio;
2133#[macro_use]
2234extern crate log;
35+
2336use rsocket_rust :: prelude :: * ;
37+ use rsocket_rust_transport_tcp :: TcpServerTransport ;
2438use std :: env;
2539use std :: error :: Error ;
2640
2741#[tokio:: main]
28- async fn main () -> Result <(), Box <dyn Error >> {
29- env_logger :: builder (). init ();
30- let addr = env :: args (). nth (1 ). unwrap_or (" tcp:// 127.0.0.1:7878" . to_string ());
42+ async fn main () -> Result <(), Box <dyn Error + Send + Sync >> {
43+ env_logger :: builder (). format_timestamp_millis () . init ();
44+ let addr = env :: args (). nth (1 ). unwrap_or (" 127.0.0.1:7878" . to_string ());
3145
3246 RSocketFactory :: receive ()
33- . transport (& addr )
47+ . transport (TcpServerTransport :: from ( addr ) )
3448 . acceptor (| setup , _socket | {
3549 info! (" accept setup: {:?}" , setup );
3650 Ok (Box :: new (EchoRSocket ))
3751 // Or you can reject setup
3852 // Err(From::from("SETUP_NOT_ALLOW"))
3953 })
54+ . on_start (|| info! (" +++++++ echo server started! +++++++" ))
4055 . serve ()
4156 . await
4257}
@@ -45,16 +60,15 @@ async fn main() -> Result<(), Box<dyn Error>> {
4560### Client
4661
4762``` rust
48- extern crate rsocket_rust;
49-
5063use rsocket_rust :: prelude :: * ;
64+ use rsocket_rust_transport_tcp :: TcpClientTransport ;
5165
5266#[tokio:: main]
5367#[test]
5468async fn test () {
5569 let cli = RSocketFactory :: connect ()
5670 . acceptor (|| Box :: new (EchoRSocket ))
57- . transport (" tcp:// 127.0.0.1:7878" )
71+ . transport (TcpClientTransport :: from ( " 127.0.0.1:7878" ) )
5872 . setup (Payload :: from (" READY!" ))
5973 . mime_type (" text/plain" , " text/plain" )
6074 . start ()
@@ -71,11 +85,6 @@ async fn test() {
7185
7286```
7387
74- ## Dependencies
75-
76- - [ tokio] ( https://tokio.rs/ )
77- - [ futures-rs] ( http://rust-lang-nursery.github.io/futures-rs/ )
78-
7988## TODO
8089
8190- Operations
@@ -85,7 +94,7 @@ async fn test() {
8594 - [x] REQUEST_STREAM
8695 - [x] REQUEST_CHANNEL
8796- More Operations
88- - [ ] Error
97+ - [x ] Error
8998 - [ ] Cancel
9099 - [ ] Fragmentation
91100 - [ ] Resume
@@ -94,7 +103,8 @@ async fn test() {
94103 - [ ] Lease
95104- Transport
96105 - [x] TCP
97- - [ ] Websocket
106+ - [x] Websocket
107+ - [x] WASM: (see example: [ https://github.com/jjeffcaii/rsocket-rust-wasm-example ] ( https://github.com/jjeffcaii/rsocket-rust-wasm-example ) )
98108- Reactor
99109 - [ ] ...
100110- High Level APIs
0 commit comments