tarpc 0.34.0

An RPC framework for Rust with a focus on ease of use.
Documentation
[package]
name = "tarpc"
version = "0.34.0"
rust-version = "1.58.0"
authors = [
    "Adam Wright <adam.austin.wright@gmail.com>",
    "Tim Kuehn <timothy.j.kuehn@gmail.com>",
]
edition = "2021"
license = "MIT"
documentation = "https://docs.rs/tarpc"
homepage = "https://github.com/google/tarpc"
repository = "https://github.com/google/tarpc"
keywords = ["rpc", "network", "server", "api", "microservices"]
categories = ["asynchronous", "network-programming"]
readme = "README.md"
description = "An RPC framework for Rust with a focus on ease of use."

[features]
default = []

serde1 = ["tarpc-plugins/serde1", "serde", "serde/derive", "serde/rc"]
tokio1 = ["tokio/rt"]
serde-transport = ["serde1", "tokio1", "tokio-serde", "tokio-util/codec"]
serde-transport-json = ["tokio-serde/json"]
serde-transport-bincode = ["tokio-serde/bincode"]
tcp = ["tokio/net"]
unix = ["tokio/net"]

full = [
    "serde1",
    "tokio1",
    "serde-transport",
    "serde-transport-json",
    "serde-transport-bincode",
    "tcp",
    "unix",
]

[badges]
travis-ci = { repository = "google/tarpc" }

[dependencies]
anyhow = "1.0"
fnv = "1.0"
futures = "0.3"
humantime = "2.0"
pin-project = "1.0"
rand = "0.8"
serde = { optional = true, version = "1.0", features = ["derive"] }
static_assertions = "1.1.0"
tarpc-plugins = { path = "../plugins", version = "0.13" }
thiserror = "1.0"
tokio = { version = "1", features = ["time"] }
tokio-util = { version = "0.7.3", features = ["time"] }
tokio-serde = { optional = true, version = "0.8" }
tracing = { version = "0.1", default-features = false, features = [
    "attributes",
    "log",
] }
tracing-opentelemetry = { version = "0.18.0", default-features = false }
opentelemetry = { version = "0.18.0", default-features = false }


[dev-dependencies]
assert_matches = "1.4"
bincode = "1.3"
bytes = { version = "1", features = ["serde"] }
flate2 = "1.0"
futures-test = "0.3"
opentelemetry = { version = "0.18.0", default-features = false, features = [
    "rt-tokio",
] }
opentelemetry-jaeger = { version = "0.17.0", features = ["rt-tokio"] }
pin-utils = "0.1.0-alpha"
serde_bytes = "0.11"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tokio = { version = "1", features = ["full", "test-util", "tracing"] }
console-subscriber = "0.1"
tokio-serde = { version = "0.8", features = ["json", "bincode"] }
trybuild = "1.0"
tokio-rustls = "0.23"
rustls-pemfile = "1.0"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[[example]]
name = "compression"
required-features = ["serde-transport", "tcp"]

[[example]]
name = "tracing"
required-features = ["full"]

[[example]]
name = "readme"
required-features = ["full"]

[[example]]
name = "pubsub"
required-features = ["full"]

[[example]]
name = "custom_transport"
required-features = ["serde1", "tokio1", "serde-transport"]

[[example]]
name = "tls_over_tcp"
required-features = ["full"]

[[test]]
name = "service_functional"
required-features = ["serde-transport"]

[[test]]
name = "dataservice"
required-features = ["serde-transport", "tcp"]