[package] name = "lrcall" description = "lrcall is a Rust procedure call framework that is compatible with local and remote procedure calls." readme = "README.md" documentation = "https://docs.rs/lrcall" keywords.workspace = true categories.workspace = true authors = [ "Andeya Lee ", "Adam Wright ", "Tim Kuehn ", ] rust-version.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true version.workspace = true edition.workspace = true [lib] test = true # Is tested by default. doctest = true # Documentation examples are tested by default. bench = true # Is benchmarked by default. doc = true # Is documented by default. proc-macro = false # Set to `true` for a proc-macro library. harness = true # Use libtest harness. crate-type = ["lib"] # The crate types to generate. required-features = [] # Features required to build this target (N/A for lib). [features] default = [] serde1 = ["lrcall-macro/serde1", "serde", "serde/derive", "serde/rc"] tokio1 = ["tokio/rt"] serde-transport = ["serde1", "tokio1", "tokio-serde", "tokio-util/codec"] serde-transport-json = ["serde-transport", "tokio-serde/json"] serde-transport-bincode = ["serde-transport", "tokio-serde/bincode"] tcp = ["tokio/net"] unix = ["tokio/net"] full = [ "serde1", "tokio1", "serde-transport", "serde-transport-json", "serde-transport-bincode", "tcp", "unix", ] [dependencies] anyhow = { workspace = true } fnv = { workspace = true } futures = { workspace = true } humantime = { workspace = true } pin-project = { workspace = true } rand = { workspace = true } serde = { workspace = true, optional = true, features = ["derive"] } static_assertions = { workspace = true } lrcall-macro = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["time"] } tokio-util = { workspace = true, features = ["time"] } tokio-serde = { workspace = true, optional = true } tracing = { workspace = true, features = ["attributes", "log"] } tracing-opentelemetry = { workspace = true } opentelemetry = { workspace = true } opentelemetry-semantic-conventions = { workspace = true } [dev-dependencies] assert_matches = { workspace = true } bincode = { workspace = true } bytes = { workspace = true, features = ["serde"] } flate2 = { workspace = true } futures-test = { workspace = true } opentelemetry = { workspace = true, default-features = false } opentelemetry-otlp = { workspace = true } opentelemetry_sdk = { workspace = true, features = ["rt-tokio"] } pin-utils = { workspace = true } serde_bytes = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } tokio = { workspace = true, features = ["full", "test-util", "tracing"] } console-subscriber = { workspace = true } tokio-serde = { workspace = true, features = ["json", "bincode"] } trybuild = { workspace = true } tokio-rustls = { workspace = true } rustls-pemfile = { workspace = true } [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"] [[example]] name = "sample" required-features = ["tokio1"] [[example]] name = "sample_expand" required-features = ["tokio1"] [[test]] name = "service_functional" required-features = ["serde-transport"] [[test]] name = "dataservice" required-features = ["serde-transport", "tcp"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [workspace] resolver = "2" members = ["lrcall-macro", "lrcall-example"] [workspace.package] version = "0.1.5" edition = "2021" authors = ["Andeya Lee "] license = "MIT" rust-version = "1.80.1" homepage = "https://github.com/andeya/lrcall" repository = "https://github.com/andeya/lrcall" readme = "README.md" categories = ["asynchronous", "network-programming"] keywords = ["rpc", "network", "server", "api", "microservices"] [workspace.dependencies] lrcall-macro = { version = "0.1", path = "./lrcall-macro" } lrcall = { version = "0.1", path = "./" } # all dependencies proc-macro2 = "1.0" quote = "1.0" syn = "2.0.74" anyhow = "1.0" fnv = "1.0" futures = "0.3" humantime = "2.0" pin-project = "1.0" rand = "0.8" serde = "1.0" static_assertions = "1.1.0" thiserror = "1.0" tokio = "1" tokio-util = "0.7.3" tokio-serde = "0.9" tracing = { version = "0.1", default-features = false } tracing-opentelemetry = { version = "0.25.0", default-features = false } opentelemetry = { version = "0.24.0", default-features = false } opentelemetry-semantic-conventions = "0.16.0" # only for dev-dependencies assert-type-eq = "0.1.0" clap = "4.4.18" log = "0.4" opentelemetry-otlp = "0.17.0" tracing-subscriber = "0.3" opentelemetry_sdk = "0.24.1" assert_matches = "1.4" bincode = "1.3" bytes = "1" flate2 = "1.0" futures-test = "0.3" pin-utils = "0.1.0" serde_bytes = "0.11" console-subscriber = "0.4" trybuild = "1.0" tokio-rustls = "0.25" rustls-pemfile = "2.0" [profile.dev] split-debuginfo = "unpacked"