[package]
edition = "2024"
rust-version = "1.88.0"
name = "piying"
version = "0.1.1"
build = false
include = [
"/src",
"/README.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Fault-tolerant Async Actors Built on Tokio"
readme = "README.md"
keywords = [
"actor",
"tokio",
]
categories = [
"asynchronous",
"concurrency",
"rust-patterns",
]
license = "MIT OR Apache-2.0"
repository = "https://codeberg.org/caniko/rs-piying"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
[features]
default = [
"macros",
"tracing",
]
hotpath = [
"dep:hotpath",
"hotpath/hotpath",
]
macros = ["dep:piying_macros"]
metrics = ["dep:metrics"]
remote = [
"dep:async-trait",
"dep:const-fnv1a-hash",
"dep:const-str",
"dep:either",
"dep:libp2p",
"dep:linkme",
]
rkyv = ["dep:rkyv"]
rkyv-codec = [
"rkyv",
"dep:libp2p-rkyv-codec",
]
serde = ["dep:serde"]
serde-codec = [
"serde",
"dep:rmp-serde",
"libp2p?/cbor",
]
session-isolation = []
tracing = [
"dep:tracing",
"tokio/tracing",
]
[lib]
name = "piying"
path = "src/lib.rs"
[dependencies.anyhow]
version = "1"
[dependencies.arc-swap]
version = "1"
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.const-fnv1a-hash]
version = "1.1.0"
optional = true
[dependencies.const-str]
version = "1.1"
features = ["proc"]
optional = true
[dependencies.downcast-rs]
version = "2.0.1"
[dependencies.dyn-clone]
version = "1.0"
[dependencies.either]
version = "1.15.0"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.hotpath]
version = "0.11"
features = ["tokio"]
optional = true
[dependencies.libp2p]
version = "0.56.0"
features = [
"kad",
"macros",
"mdns",
"noise",
"quic",
"request-response",
"tcp",
"tokio",
"yamux",
"mdns",
]
optional = true
[dependencies.libp2p-rkyv-codec]
version = "0.2"
optional = true
[dependencies.linkme]
version = "0.3.28"
optional = true
[dependencies.metrics]
version = "0.24.2"
optional = true
[dependencies.piying_macros]
version = "0.1.0"
optional = true
[dependencies.rkyv]
version = "0.8"
optional = true
[dependencies.rmp-serde]
version = "1.3.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.47"
features = [
"macros",
"rt",
"sync",
"time",
]
[dependencies.tracing]
version = "0.1"
optional = true
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
"rt-multi-thread",
"sync",
"time",
]
[dev-dependencies.tokio-test]
version = "0.4.4"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tokio_unstable)"]
[profile.release]
opt-level = 3
lto = true
codegen-units = 1