[package] name = "auxon-sdk" version = "2.2.0" edition = "2021" license = "Apache-2.0" repository = "https://github.com/auxoncorp/auxon-sdk" description = "A collection of clients, servers, protocols, and general API types for interacting with the APIs that are used throughout Auxon's suite of tools" homepage = "https://auxon.io/" [features] default = [] modality = [ "dep:minicbor", "dep:tokio", "dep:tokio-rustls", "dep:rustls-native-certs", "dep:clap", "dep:tracing-subscriber", "dep:futures", "dep:exitcode", "dep:nix", "dep:envy", ] deviant = ["modality", "dep:async-trait", "dep:tokio-util", "dep:minicbor-io"] mutator_server = [ "modality", "deviant", "dep:axum", "dep:utoipa", "dep:utoipa-swagger-ui", "dep:parking_lot", "dep:percent-encoding", "dep:reqwest", "dep:serde_json", ] modality_tracing = [ "modality", "dep:anyhow", "dep:serde_json", "dep:once_cell", "dep:tracing-serde-wire", "dep:tracing-serde-structured", "dep:tracing-core", "dep:parking_lot", "dep:duplicate", ] test_support = ["dep:proptest"] schemars = ["dep:schemars"] pyo3 = ["dep:pyo3", "modality", "deviant"] [dependencies] hex = "0.4" thiserror = "1" dirs = "4.0.0" uuid = { version = "1", default-features = false, features = ["std", "v4", "v5", "serde"] } ordered-float = "3.7.0" toml = "0.5" serde = { version = "1.0", features = ["derive"] } url = { version = "2.1", features = ["serde"] } tracing = "0.1" regex = "1.6" lazy_static = "1.4" proptest = { version = "1.0", default-features = false, features = ["std"], optional = true } schemars = { version = "0.8.8", features = ["uuid1", "chrono"], optional = true } minicbor = { version = "0.13.1", features = ["std", "derive"], optional = true } tokio = { version = "1", features = ["macros", "rt-multi-thread", "sync", "time", "tracing", "net", "signal", "net", "io-util", "fs"], optional = true } tokio-rustls = { version = "0.26", optional = true } clap = { version = "4.3", features = ["color", "derive", "env"], optional = true } tracing-subscriber = { version = "0.3", features = ["env-filter", "tracing-log"], optional = true } futures = { version = "0.3.21", optional = true } exitcode = { version = "1.1.2", optional = true } async-trait = { version = "0.1.52", optional = true } tokio-util = { version = "0.7.3", features = ["compat"], optional = true } minicbor-io = { version = "0.8", features = ["async-io"], optional = true } axum = { version = "0.6", optional = true } utoipa = { version = "3.0", features = ["uuid", "axum_extras"], optional = true } utoipa-swagger-ui = { version = "3.0", features = ["axum"], optional = true } parking_lot = { version = "0.12.0", optional = true } percent-encoding = { version = "2.1.0", optional = true } reqwest = { version = "0.11", default-features = false, features = ["blocking", "stream", "json", "rustls-tls"], optional = true } serde_json = { version = "1.0", features = ["float_roundtrip"], optional = true } anyhow = { version = "1", optional = true } once_cell = { version = "1.12.0", optional = true } tracing-serde-wire = { version = "0.1", optional = true } tracing-serde-structured = { version = "0.1", optional = true } tracing-core = { version = "0.1.27", optional = true } duplicate = { version = "0.4.1", optional = true } envy = { version = "0.4.2", optional = true } rustls-native-certs = { version = "0.7", optional = true } pyo3 = { version = "0.21", optional = true } [target.'cfg(target_family = "unix")'.dependencies] nix = { version = "0.26.2", optional = true } [dev-dependencies] proptest = "1.0" tempfile = "3" serial_test = "3" # For the examples rand = { version = "0.8.5" } ctrlc = "3.2.2" [[example]] name = "no_mutators" required-features = ["mutator_server"] [[example]] name = "single_mutator" required-features = ["mutator_server"] [[example]] name = "multi_mutator" required-features = ["mutator_server"] [[example]] name = "basic" required-features = ["modality_tracing"] [[example]] name = "monitored_pipeline" required-features = ["modality_tracing"] [[example]] name = "simple_multi" required-features = ["modality_tracing"] [[example]] name = "utils_ingest" required-features = ["modality"] [[example]] name = "utils_mutator" required-features = ["modality", "deviant"] [package.metadata.docs.rs] all-features = true