[package] name = "pass-it-on" version = "0.16.3" authors = ["Kevin Wheelans "] edition = "2021" rust-version = "1.76" description = "A library that provides a simple notification client and server that receives messages and passes them on to endpoints" documentation = "https://docs.rs/crate/pass-it-on" homepage = "https://github.com/kwheelans/pass-it-on" license = "MIT" keywords = ["notify", "notification", "server", "client"] readme = "README.md" repository = "https://github.com/kwheelans/pass-it-on" [package.metadata.docs.rs] all-features = true [features] default = ["server-bin-full","client"] client = ["interfaces", "tokio", "tokio/signal", "tokio/time", "dep:tracing"] discord = ["endpoints", "dep:tracing", "reqwest"] email = ["endpoints", "dep:tracing", "dep:mail-send"] endpoints = ["dep:async-trait","dep:dyn-clone", "dep:typetag"] file = ["endpoints", "dep:tracing", "tokio/io-util"] http = ["http-client", "http-server"] http-client = ["interfaces", "reqwest", "dep:url", "dep:tracing"] http-server = ["interfaces", "dep:url", "dep:axum", "dep:axum-server", "dep:tracing", "dep:rustls"] interfaces = ["dep:async-trait","dep:dyn-clone", "dep:typetag"] matrix = ["endpoints", "dep:tracing", "dep:matrix-sdk", "dep:futures-util", "dep:url"] parse-cfg = ["dep:toml"] pipe = ["pipe-client", "pipe-server"] pipe-client = ["interfaces", "dep:tracing", "dep:nix", "tokio/io-util"] pipe-server = ["interfaces", "dep:tracing", "dep:nix","tokio/io-util"] server = ["interfaces", "endpoints", "tokio", "tokio/signal", "tokio/time", "dep:tracing"] server-bin-full = ["server-bin-minimal", "pipe", "http", "file", "matrix", "discord", "email"] server-bin-minimal = ["server", "parse-cfg", "dep:clap", "dep:directories", "dep:tracing-subscriber"] bundled-sqlite = ["matrix-sdk?/bundled-sqlite"] rustls-tls-native-roots = ["reqwest?/rustls-tls-native-roots"] [dependencies] async-trait = { version = "0.1", optional = true } axum = { version = "0.7", optional = true } axum-server = { version = "0.7", features = ["tls-rustls"], optional = true } blake3 = "1" clap = { version = "4.4", features = ["derive", "cargo"], optional = true } directories = { version = "5.0", optional = true } dyn-clone = { version = "1.0", optional = true } mail-send = { version = "0.4", optional = true } matrix-sdk = { version = "0.8", features = ["automatic-room-key-forwarding", "e2e-encryption", "rustls-tls", "sqlite"], default-features = false, optional = true } nix = { version = "0.29.0", features = ["fs", "net"], default-features = false, optional = true } reqwest = { version = "0.12", features = ["charset", "http2", "macos-system-configuration", "json", "rustls-tls"], default-features = false, optional = true } rustls = { version = "0.23.13", optional = true } serde = { version = "1", features = ["default", "derive"] } serde_json = "1" futures-util = { version = "0.3", optional = true } thiserror = "2" tokio = { version = "1", features = ["sync", "macros", "rt-multi-thread"], default-features = false, optional = true } toml = { version = "0.8", features = ["parse"], default-features = false, optional = true } tracing = { version = "0.1", optional = true } tracing-subscriber = { version = "0.3.18", optional = true } typetag = { version = "0.2", optional = true } url = { version = "2.5", features = ["serde"], optional = true } [lib] name = "pass_it_on" doctest = false [[bin]] name = "pass-it-on-server" required-features = ["server-bin-minimal"] [[example]] name = "simple_client" required-features = ["client", "http-client", "parse-cfg"] [[test]] name = "client_configuration_tests" required-features = ["client", "parse-cfg"] [[test]] name = "server_configuration_tests" required-features = ["server", "http-server", "parse-cfg", "file"] [profile.release] lto = true codegen-units = 1