[package] name = "remoc" description = "🦑 Remote multiplexed objects, channels, observable collections and RPC making remote interactions seamless. Provides multiple remote channels and RPC over TCP, TLS or any other transport." keywords = ["remote", "channel", "rpc", "stream", "multiplexer"] categories = ["asynchronous", "network-programming"] version = { workspace = true } repository = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } license = { workspace = true } authors = { workspace = true } [features] default = ["full", "default-codec-json"] full = ["serde", "rch", "rfn", "robj", "robs", "rtc"] rch = ["async-trait", "serde", "tokio-util/codec", "tokio/io-util"] rfn = ["rch"] robj = ["rch"] robs = ["rch"] rtc = ["rch", "remoc_macro", "async-trait"] # Codecs default-codec-set = [] codec-bincode = ["bincode"] default-codec-bincode = ["codec-bincode", "default-codec-set"] codec-ciborium = ["ciborium"] default-codec-ciborium = ["codec-ciborium", "default-codec-set"] codec-json = ["serde_json"] default-codec-json = ["codec-json", "default-codec-set"] codec-message-pack = ["rmp-serde"] default-codec-message-pack = ["codec-message-pack", "default-codec-set"] codec-postcard = ["postcard"] default-codec-postcard = ["codec-postcard", "default-codec-set"] full-codecs = [ "codec-bincode", "codec-ciborium", "codec-json", "codec-message-pack", "codec-postcard", ] [dependencies] remoc_macro = { version = "=0.14.0", path = "../remoc_macro", optional = true } futures = "0.3" tokio = { version = "1.34", features = ["macros", "rt", "sync", "time"] } tokio-util = { version = "0.7", features = ["codec"] } rand = "0.8" tracing = "0.1.29" bytes = "1" byteorder = "1.4" uuid = { version = "1", features = ["serde", "v4"] } async-trait = { version = "0.1", optional = true } serde = { version = "1.0", features = ["derive"], optional = true } # Codecs serde_json = { version = "1.0", optional = true } bincode = { version = "1.3", optional = true } ciborium = { version = "0.2", optional = true } rmp-serde = { version = "1.0", optional = true } postcard = { version = "1.0", features = ["use-std"] , optional = true } [dev-dependencies] tokio = { version = "1.32", features = [ "net", "io-util", "rt", "rt-multi-thread", ] } tokio-util = { version = "0.7", features = ["codec"] } tokio-test = "0.4" tracing-subscriber = { version = "0.3.7", features = ["env-filter"] } [package.metadata.docs.rs] features = ["full", "full-codecs", "default-codec-json"] rustdoc-args = ["--cfg", "docsrs"]