Skip to content

Commit f05e5fe

Browse files
committed
Support tokio v0.2.x and async-await.
1 parent 8bd39b1 commit f05e5fe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+781
-1109
lines changed

Cargo.toml

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rsocket_rust"
3-
version = "0.1.5"
3+
version = "0.2.0"
44
authors = ["Jeffsky <jjeffcaii@outlook.com>"]
55
edition = "2018"
66
license = "Apache-2.0"
@@ -10,19 +10,31 @@ homepage = "https://github.com/rsocket/rsocket-rust"
1010
description = "rsocket-rust is an implementation of the RSocket protocol in Rust."
1111

1212
[dependencies]
13+
matches = "0.1.8"
1314
log = "0.4.8"
14-
bytes = "0.4.12"
15-
futures = "0.1.29"
16-
tokio = "0.1.22"
15+
bytes = "0.5.1"
16+
futures = "0.3.1"
17+
# reactor_rs = {git = "https://github.com/jjeffcaii/reactor-rust", branch = "develop"}
18+
19+
[dependencies.tokio]
20+
version = "0.2.1"
21+
default-features = false
22+
features = ["full"]
23+
24+
[dependencies.tokio-util]
25+
version = "0.2.0"
26+
default-features = false
27+
features = ["codec"]
28+
1729

1830
[dev-dependencies]
19-
env_logger = "0.6.2"
20-
hex = "0.3.2"
31+
env_logger = "0.7.1"
32+
hex = "0.4.0"
2133

2234
[[example]]
2335
name = "echo"
2436
path = "examples/echo/main.rs"
2537

26-
[[example]]
27-
name = "proxy"
28-
path = "examples/proxy/main.rs"
38+
# [[example]]
39+
# name = "proxy"
40+
# path = "examples/proxy/main.rs"

examples/echo/main.rs

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,48 @@
1-
#![allow(unused_variables)]
2-
#![allow(unused_imports)]
3-
#![allow(dead_code)]
4-
5-
#[macro_use]
6-
extern crate log;
7-
extern crate bytes;
8-
extern crate env_logger;
9-
extern crate futures;
101
extern crate rsocket_rust;
112
extern crate tokio;
12-
13-
use bytes::Bytes;
14-
use futures::prelude::*;
3+
#[macro_use]
4+
extern crate log;
5+
use futures::{SinkExt, StreamExt};
6+
use rsocket_rust::frame::Frame;
157
use rsocket_rust::prelude::*;
8+
use rsocket_rust::transport::DuplexSocket;
9+
use rsocket_rust::transport::{self, Rx, Tx};
10+
use std::env;
11+
use std::error::Error;
12+
use std::sync::Arc;
13+
use tokio::net::TcpListener;
14+
use tokio::prelude::*;
15+
use tokio::sync::mpsc;
16+
17+
#[tokio::main]
18+
async fn main() -> Result<(), Box<dyn Error>> {
19+
env_logger::builder().init();
20+
RSocketFactory::receive()
21+
.transport(URI::Tcp("127.0.0.1:7878"))
22+
.acceptor(|setup, sending_socket| {
23+
info!("accept setup: {:?}", setup);
24+
Box::new(EchoRSocket)
25+
})
26+
.serve()
27+
.await
28+
29+
// let addr = env::args().nth(1).unwrap_or("127.0.0.1:7878".to_string());
30+
// let mut listener = TcpListener::bind(&addr).await?;
31+
// println!("Listening on: {}", addr);
32+
33+
// loop {
34+
// let (mut socket, _) = listener.accept().await?;
35+
// let (rcv_tx, mut rcv_rx) = mpsc::unbounded_channel::<Frame>();
36+
// let (snd_tx, snd_rx) = mpsc::unbounded_channel::<Frame>();
1637

17-
fn main() {
18-
env_logger::builder()
19-
.default_format_timestamp_nanos(true)
20-
.init();
38+
// tokio::spawn(
39+
// async move { rsocket_rust::transport::tcp::process(socket, snd_rx, rcv_tx).await },
40+
// );
2141

22-
let server = RSocketFactory::receive()
23-
.transport(URI::Tcp("127.0.0.1:7878"))
24-
.acceptor(|setup, sending_socket| {
25-
info!("accept setup: {:?}", setup);
26-
// TODO: use tokio runtime?
27-
// std::thread::spawn(move || {
28-
// let resp = sending_socket
29-
// .request_response(
30-
// Payload::builder()
31-
// .set_data(Bytes::from("Hello Client!"))
32-
// .build(),
33-
// )
34-
// .wait()
35-
// .unwrap();
36-
// println!(">>>>> response success: {:?}", resp);
37-
// });
38-
Box::new(MockResponder)
39-
})
40-
.serve();
41-
tokio::run(server);
42+
// let ds = DuplexSocket::new(0, snd_tx.clone());
43+
// tokio::spawn(async move {
44+
// let acceptor = Acceptor::Generate(Arc::new(|setup, socket| Box::new(EchoRSocket)));
45+
// ds.event_loop(acceptor, rcv_rx).await;
46+
// });
47+
// }
4248
}

examples/proxy/main.rs

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/core/callers.rs

Lines changed: 0 additions & 50 deletions
This file was deleted.

src/core/misc.rs

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/core/mod.rs

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)