[package]
edition = "2024"
rust-version = "1.85"
name = "myelin"
version = "0.1.0"
build = false
include = [
"src/**/*.rs",
"tests/**/*.rs",
"Cargo.toml",
"README.md",
"LICENSE-APACHE",
"LICENSE-MIT",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Define async service APIs as traits, communicate over channels. Transport and serialization are pluggable."
homepage = "https://github.com/kaspar030/myelin"
documentation = "https://docs.rs/myelin"
readme = "README.md"
keywords = [
"async",
"rpc",
"channels",
"embassy",
"no_std",
]
categories = [
"asynchronous",
"embedded",
"network-programming",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/kaspar030/myelin"
resolver = "2"
[package.metadata.docs.rs]
features = [
"tokio",
"tokio-io",
"embassy",
"postcard",
"cbor",
"futures-io",
"smol",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
cbor = [
"std",
"dep:minicbor-serde",
"dep:serde",
"minicbor-serde/std",
]
default = []
embassy = [
"dep:embassy-sync",
"dep:static_cell",
"myelin-macros/embassy",
]
futures-io = [
"std",
"dep:futures-io",
]
io-test-utils = ["std"]
postcard = [
"std",
"dep:postcard",
"dep:serde",
]
smol = [
"std",
"dep:async-channel",
"dep:futures-lite",
]
std = []
tokio = [
"std",
"dep:tokio",
"myelin-macros/tokio",
]
tokio-io = [
"std",
"dep:tokio",
"tokio/io-util",
]
[lib]
name = "myelin"
path = "src/lib.rs"
[[test]]
name = "cbor_stream_integration"
path = "tests/cbor_stream_integration.rs"
[[test]]
name = "duplex_smol_integration"
path = "tests/duplex_smol_integration.rs"
[[test]]
name = "large_router_smoke"
path = "tests/large_router_smoke.rs"
[[test]]
name = "service_macro"
path = "tests/service_macro.rs"
[dependencies.async-channel]
version = "2"
optional = true
[dependencies.atomic-waker]
version = "1.1"
[dependencies.embassy-sync]
version = "0.7"
optional = true
[dependencies.futures-io]
version = "0.3"
features = ["std"]
optional = true
default-features = false
[dependencies.futures-lite]
version = "2"
features = ["std"]
optional = true
default-features = false
[dependencies.minicbor-serde]
version = "0.6"
optional = true
default-features = false
[dependencies.myelin-macros]
version = "0.1"
[dependencies.paste]
version = "1"
[dependencies.postcard]
version = "1"
features = ["use-std"]
optional = true
[dependencies.serde]
version = "1"
optional = true
[dependencies.static_cell]
version = "2"
optional = true
default-features = false
[dependencies.tokio]
version = "1"
features = ["sync"]
optional = true
[dev-dependencies.futures-lite]
version = "2"
features = ["std"]
default-features = false
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.smol]
version = "2"
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"sync",
"io-util",
"net",
]