[package]
edition = "2021"
rust-version = "1.89"
name = "irpc"
version = "0.12.0"
authors = [
"RĂ¼diger Klaehn <rklaehn@protonmail.com>",
"n0 team",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A streaming rpc system based on quic"
readme = "README.md"
keywords = [
"api",
"protocol",
"network",
"rpc",
]
categories = ["network-programming"]
license = "Apache-2.0/MIT"
repository = "https://github.com/n0-computer/irpc"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"quicrpc_docsrs",
]
[features]
default = [
"rpc",
"quinn_endpoint_setup",
"spans",
"stream",
"derive",
]
derive = ["dep:irpc-derive"]
quinn_endpoint_setup = [
"rpc",
"dep:rustls",
"dep:rcgen",
"dep:futures-buffered",
"quinn/rustls-ring",
]
rpc = [
"dep:quinn",
"dep:postcard",
"dep:smallvec",
"dep:tracing",
"tokio/io-util",
]
spans = ["dep:tracing"]
stream = ["dep:futures-util"]
varint-util = [
"dep:postcard",
"dep:smallvec",
"tokio/io-util",
]
[lib]
name = "irpc"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[example]]
name = "compute"
path = "examples/compute.rs"
required-features = [
"rpc",
"derive",
"quinn_endpoint_setup",
]
[[example]]
name = "derive"
path = "examples/derive.rs"
required-features = [
"rpc",
"derive",
"quinn_endpoint_setup",
]
[[example]]
name = "local"
path = "examples/local.rs"
required-features = ["derive"]
[[example]]
name = "storage"
path = "examples/storage.rs"
required-features = [
"rpc",
"quinn_endpoint_setup",
]
[[test]]
name = "common"
path = "tests/common.rs"
[[test]]
name = "derive"
path = "tests/derive.rs"
[[test]]
name = "mpsc_channel"
path = "tests/mpsc_channel.rs"
[[test]]
name = "oneshot_channel"
path = "tests/oneshot_channel.rs"
[dependencies.futures-buffered]
version = "0.2.9"
optional = true
[dependencies.futures-util]
version = "0.3"
features = ["sink"]
optional = true
[dependencies.irpc-derive]
version = "0.9.0"
optional = true
[dependencies.n0-error]
version = "0.1"
[dependencies.n0-future]
version = "0.3"
default-features = false
[dependencies.postcard]
version = "1.1.1"
features = [
"alloc",
"use-std",
]
optional = true
default-features = false
[dependencies.quinn]
version = "0.16.0"
optional = true
default-features = false
package = "iroh-quinn"
[dependencies.rcgen]
version = "0.14.5"
optional = true
[dependencies.rustls]
version = "0.23.5"
features = ["std"]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
default-features = false
[dependencies.smallvec]
version = "1.14.0"
features = ["write"]
optional = true
[dependencies.tokio]
version = "1.44"
features = [
"sync",
"macros",
]
default-features = false
[dependencies.tokio-util]
version = "0.7.14"
default-features = false
[dependencies.tracing]
version = "0.1.41"
optional = true
default-features = false
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.derive_more]
version = "2"
features = ["from"]
[dev-dependencies.testresult]
version = "0.4.1"
[dev-dependencies.thousands]
version = "0.2.0"
[dev-dependencies.tokio]
version = "1.44"
features = ["full"]
default-features = false
[dev-dependencies.tracing-subscriber]
version = "0.3.20"
features = ["fmt"]
[dev-dependencies.trybuild]
version = "1.0.104"
[target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dependencies.quinn]
version = "0.16.0"
features = ["runtime-tokio"]
optional = true
default-features = false
package = "iroh-quinn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(quicrpc_docsrs)"]