[package] name = "coerce" description = "Async actor runtime and distributed systems framework" license = "Apache-2.0" version = "0.8.11" authors = ["Leon Hartley "] edition = "2021" readme = "README.md" repository = "https://github.com/leonhartley/coerce-rs" [features] default = [] full = [ "remote", "persistence", "metrics", "sharding", "api", "actor-tracing", "actor-tracing-info", "client-auth-jwt", ] remote = [ "dep:hashring", "dep:protobuf", "dep:chrono", "dep:tokio-stream", "dep:parking_lot", "dep:bytes", "dep:byteorder" ] persistence = [ "dep:protobuf", "dep:anyhow", "dep:parking_lot" ] metrics = [ "dep:metrics", "dep:metrics-exporter-prometheus", "dep:metrics-util" ] sharding = [ "remote", "persistence" ] actor-tracing = [] actor-events = [] tracing-unstable = [ "tracing/valuable" ] # When this feature is enabled, actor spans will be created at INFO level actor-tracing-info = ["actor-tracing"] # When this feature is enabled, actor spans will be created at TRACE level actor-tracing-trace = ["actor-tracing"] # When this feature is enabled, actor spans will be created at DEBUG level actor-tracing-debug = ["actor-tracing"] api = ["remote", "dep:axum", "dep:utoipa", "dep:utoipa-swagger-ui"] client-auth-jwt = ["dep:jwt", "dep:hmac", "dep:sha2"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] tokio = { version = "1.32.0", features = ["full"] } tokio-util = { version = "0.7.8", features = ["full"] } tokio-stream = { version = "0.1.14", optional = true } tracing = { version = "0.1.37" } uuid = { version = "1.1.2", features = ["serde", "v4"] } lazy_static = "1.4.0" serde = { version = "1.0", features = ["derive", "rc"] } serde_json = "1.0" futures = "0.3.28" async-trait = { version = "0.1" } hashring = { version = "0.3.0", optional = true } bytes = { version = "1.4.0", optional = true } byteorder = { version = "1.4.3", optional = true } chrono = { version = "0.4", features = ["serde"], optional = true } protobuf = { version = "=3.2.0", optional = true } anyhow = { version = "1.0.71", optional = true } rand = "0.8.5" parking_lot = { version = "0.12.1", optional = true } metrics = { version = "0.21.0", optional = true } valuable = { version = "0.1", features = ["derive"] } metrics-exporter-prometheus = { version = "0.12.1", optional = true } metrics-util = { version = "0.15.0", optional = true } jwt = { version = "0.16.0", optional = true } hmac = { version = "0.12.1", optional = true } sha2 = { version = "0.10.6", optional = true } # API dependencies axum = { version = "0.6.18", features = ["query"], optional = true } utoipa = { version = "3", features = ["axum_extras", "chrono"], optional = true } utoipa-swagger-ui = { version = "3", features = ["axum"], optional = true } [dev-dependencies] coerce-macros = { version = "0.2.0" } bencher = { version = "0.1.5" } tracing-subscriber = { features = ["json"], version = "0.3.17" } [[bench]] name = "actor_messaging" harness = false [[bench]] name = "actor_creation" harness = false [package.metadata.docs.rs] all-features = true