Use the JSON transport in examples

This commit is contained in:
Artem Vorotnikov
2019-10-09 04:04:18 +03:00
committed by Tim
parent d8c7b9feb2
commit 915fe3ed4e
7 changed files with 29 additions and 22 deletions

View File

@@ -114,9 +114,11 @@ impl World for HelloServer {
Lastly let's write our `main` that will start the server. While this example uses an
[in-process
channel](https://docs.rs/tarpc/0.18.0/tarpc/transport/channel/struct.UnboundedChannel.html),
tarpc also ships a
[transport](https://docs.rs/tarpc-bincode-transport/0.7.0/tarpc_bincode_transport/)
that uses bincode over TCP.
tarpc also ships
[bincode](https://docs.rs/tarpc-bincode-transport/0.7.0/tarpc_bincode_transport/)
and
[JSON](https://docs.rs/tarpc-json-transport/0.1.0/tarpc_json_transport)
tokio-net based TCP transports that are generic over all serializable types.
```rust
#[tokio::main]

View File

@@ -27,8 +27,7 @@ tarpc-plugins = { path = "../plugins", version = "0.5.0" }
[dev-dependencies]
assert_matches = "1.0"
bincode = "1.0"
tarpc-bincode-transport = { version = "0.7", path = "../bincode-transport" }
tarpc-json-transport = { version = "0.1", path = "../json-transport" }
bytes = { version = "0.4", features = ["serde"] }
env_logger = "0.6"
futures-preview = { version = "0.3.0-alpha.18" }

View File

@@ -59,7 +59,8 @@ impl subscriber::Subscriber for Subscriber {
impl Subscriber {
async fn listen(id: u32, config: server::Config) -> io::Result<SocketAddr> {
let incoming = tarpc_bincode_transport::listen(&"0.0.0.0:0".parse().unwrap())?
let incoming = tarpc_json_transport::listen("0.0.0.0:0")
.await?
.filter_map(|r| future::ready(r.ok()));
let addr = incoming.get_ref().local_addr();
tokio::spawn(
@@ -113,7 +114,7 @@ impl publisher::Publisher for Publisher {
id: u32,
addr: SocketAddr,
) -> io::Result<()> {
let conn = tarpc_bincode_transport::connect(&addr).await?;
let conn = tarpc_json_transport::connect(addr).await?;
let subscriber =
subscriber::SubscriberClient::new(client::Config::default(), conn).spawn()?;
eprintln!("Subscribing {}.", id);
@@ -145,7 +146,8 @@ impl publisher::Publisher for Publisher {
async fn main() -> io::Result<()> {
env_logger::init();
let transport = tarpc_bincode_transport::listen(&"0.0.0.0:0".parse().unwrap())?
let transport = tarpc_json_transport::listen("0.0.0.0:0")
.await?
.filter_map(|r| future::ready(r.ok()));
let publisher_addr = transport.get_ref().local_addr();
tokio::spawn(
@@ -158,7 +160,7 @@ async fn main() -> io::Result<()> {
let subscriber1 = Subscriber::listen(0, server::Config::default()).await?;
let subscriber2 = Subscriber::listen(1, server::Config::default()).await?;
let publisher_conn = tarpc_bincode_transport::connect(&publisher_addr);
let publisher_conn = tarpc_json_transport::connect(publisher_addr);
let publisher_conn = publisher_conn.await?;
let mut publisher =
publisher::PublisherClient::new(client::Config::default(), publisher_conn).spawn()?;

View File

@@ -39,9 +39,9 @@ impl World for HelloServer {
#[tokio::main]
async fn main() -> io::Result<()> {
// tarpc_bincode_transport is provided by the associated crate bincode-transport. It makes it
// easy to start up a serde-powered bincode serialization strategy over TCP.
let mut transport = tarpc_bincode_transport::listen(&"0.0.0.0:0".parse().unwrap())?;
// tarpc_json_transport is provided by the associated crate json-transport. It makes it
// easy to start up a serde-powered JSON serialization strategy over TCP.
let mut transport = tarpc_json_transport::listen("0.0.0.0:0").await?;
let addr = transport.local_addr();
let server = async move {
@@ -61,7 +61,7 @@ async fn main() -> io::Result<()> {
};
tokio::spawn(server);
let transport = tarpc_bincode_transport::connect(&addr).await?;
let transport = tarpc_json_transport::connect(addr).await?;
// WorldClient is generated by the tarpc::service attribute. It has a constructor `new` that
// takes a config and any Transport as input.

View File

@@ -66,7 +66,8 @@ impl DoubleService for DoubleServer {
async fn main() -> io::Result<()> {
env_logger::init();
let add_listener = tarpc_bincode_transport::listen(&"0.0.0.0:0".parse().unwrap())?
let add_listener = tarpc_json_transport::listen("0.0.0.0:0")
.await?
.filter_map(|r| future::ready(r.ok()));
let addr = add_listener.get_ref().local_addr();
let add_server = Server::default()
@@ -75,10 +76,11 @@ async fn main() -> io::Result<()> {
.respond_with(AddServer.serve());
tokio::spawn(add_server);
let to_add_server = tarpc_bincode_transport::connect(&addr).await?;
let to_add_server = tarpc_json_transport::connect(addr).await?;
let add_client = add::AddClient::new(client::Config::default(), to_add_server).spawn()?;
let double_listener = tarpc_bincode_transport::listen(&"0.0.0.0:0".parse().unwrap())?
let double_listener = tarpc_json_transport::listen("0.0.0.0:0")
.await?
.filter_map(|r| future::ready(r.ok()));
let addr = double_listener.get_ref().local_addr();
let double_server = rpc::Server::default()
@@ -87,7 +89,7 @@ async fn main() -> io::Result<()> {
.respond_with(DoubleServer { add_client }.serve());
tokio::spawn(double_server);
let to_double_server = tarpc_bincode_transport::connect(&addr).await?;
let to_double_server = tarpc_json_transport::connect(addr).await?;
let mut double_client =
double::DoubleClient::new(client::Config::default(), to_double_server).spawn()?;

View File

@@ -136,9 +136,11 @@
//! Lastly let's write our `main` that will start the server. While this example uses an
//! [in-process
//! channel](https://docs.rs/tarpc/0.18.0/tarpc/transport/channel/struct.UnboundedChannel.html),
//! tarpc also ships a
//! [transport](https://docs.rs/tarpc-bincode-transport/0.7.0/tarpc_bincode_transport/)
//! that uses bincode over TCP.
//! tarpc also ships
//! [bincode](https://docs.rs/tarpc-bincode-transport/0.7.0/tarpc_bincode_transport/)
//! and
//! [JSON](https://docs.rs/tarpc-json-transport/0.1.0/tarpc_json_transport)
//! tokio-net based TCP transports that are generic over all serializable types.
//!
//! ```rust
//! # extern crate futures;

View File

@@ -61,7 +61,7 @@ async fn sequential() -> io::Result<()> {
async fn serde() -> io::Result<()> {
let _ = env_logger::try_init();
let transport = tarpc_bincode_transport::listen(&([0, 0, 0, 0], 56789).into())?;
let transport = tarpc_json_transport::listen("0.0.0.0:56789").await?;
let addr = transport.local_addr();
tokio::spawn(
tarpc::Server::default()
@@ -69,7 +69,7 @@ async fn serde() -> io::Result<()> {
.respond_with(Server.serve()),
);
let transport = tarpc_bincode_transport::connect(&addr).await?;
let transport = tarpc_json_transport::connect(addr).await?;
let mut client = ServiceClient::new(client::Config::default(), transport).spawn()?;
assert_matches!(client.add(context::current(), 1, 2).await, Ok(3));