malkuth 0.1.0

A composable service-supervision toolkit for Rust
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85"
name = "malkuth"
version = "0.1.0"
authors = ["langyo <langyo.china@gmail.com>"]
build = false
exclude = [
    "docs/",
    "scripts/",
    ".github/",
    "justfile",
    "rust-toolchain.toml",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A composable service-supervision toolkit for Rust"
readme = "README.md"
keywords = [
    "supervisor",
    "graceful-shutdown",
    "rolling-update",
    "jsonrpc",
    "socket-activation",
]
categories = [
    "asynchronous",
    "network-programming",
    "development-tools",
]
license-file = "LICENSE"
repository = "https://github.com/celestia-island/malkuth"

[package.metadata.docs.rs]
all-features = true

[features]
cli = [
    "dep:clap",
    "dep:notify",
    "dep:tracing-subscriber",
]
default = [
    "tcp",
    "signals",
]
file-lock = []
ipc = ["dep:interprocess"]
leader-follower = ["lease"]
lease = []
pg-lock = ["dep:tokio-postgres"]
probes = ["dep:axum"]
replica = []
schema = ["dep:schemars"]
signals = []
tcp = []
worker = []
ws = ["dep:tokio-tungstenite"]

[lib]
name = "malkuth"
path = "src/lib.rs"

[[bin]]
name = "malkuth"
path = "src/bin/malkuth.rs"
required-features = ["cli"]

[[example]]
name = "coordination_lock"
path = "examples/coordination_lock.rs"
required-features = [
    "file-lock",
    "lease",
]

[[example]]
name = "minimal_server"
path = "examples/minimal_server.rs"
required-features = [
    "tcp",
    "signals",
]

[[example]]
name = "supervised_workers"
path = "examples/supervised_workers.rs"
required-features = ["worker"]

[[example]]
name = "test_app"
path = "examples/test_app.rs"
required-features = [
    "tcp",
    "worker",
    "signals",
]

[[test]]
name = "supervised"
path = "tests/supervised.rs"

[[test]]
name = "tcp_rpc"
path = "tests/tcp_rpc.rs"

[[test]]
name = "transports"
path = "tests/transports.rs"

[[bench]]
name = "proxy"
path = "benches/proxy.rs"
harness = false
required-features = ["tcp"]

[[bench]]
name = "rpc"
path = "benches/rpc.rs"
harness = false
required-features = ["tcp"]

[dependencies.async-trait]
version = "^0.1"

[dependencies.axum]
version = "^0.8"
optional = true

[dependencies.clap]
version = "^4"
features = ["derive"]
optional = true

[dependencies.futures-util]
version = "^0.3"
features = ["io"]

[dependencies.interprocess]
version = "^2"
features = ["tokio"]
optional = true

[dependencies.notify]
version = "^8"
optional = true

[dependencies.schemars]
version = "^1"
features = ["derive"]
optional = true

[dependencies.serde]
version = "^1"
features = ["derive"]

[dependencies.serde_json]
version = "^1"

[dependencies.thiserror]
version = "^2"

[dependencies.tokio]
version = "^1"
features = [
    "rt",
    "rt-multi-thread",
    "macros",
    "net",
    "signal",
    "sync",
    "time",
    "process",
    "io-util",
    "fs",
]

[dependencies.tokio-postgres]
version = "^0.7"
optional = true

[dependencies.tokio-tungstenite]
version = "^0.29"
optional = true

[dependencies.tracing]
version = "^0.1"

[dependencies.tracing-subscriber]
version = "^0.3"
features = ["env-filter"]
optional = true

[dev-dependencies.criterion]
version = "^0.5"
features = ["async_tokio"]

[dev-dependencies.tokio]
version = "^1"
features = [
    "rt",
    "rt-multi-thread",
    "macros",
    "net",
    "signal",
    "sync",
    "time",
    "process",
    "io-util",
    "fs",
]

[target."cfg(unix)".dependencies.libc]
version = "^0.2"

[profile.release]
opt-level = 3
lto = "thin"