[package] name = "orchestra" description = "Generate an orchestra of subsystems from a single struct." version.workspace = true authors.workspace = true edition.workspace = true repository.workspace = true license.workspace = true readme.workspace = true autoexamples = false [dependencies] tracing = "0.1.35" futures = "0.3" async-trait = "0.1" thiserror = "1" metered = { package = "prioritized-metered-channel", version = "0.6.1", path = "../metered-channel", default-features = false } orchestra-proc-macro = { version = "0.4.0", path = "./proc-macro" } futures-timer = "3.0.2" pin-project = "1.0" dyn-clonable = "0.9" [dev-dependencies] trybuild = "1.0.61" rustversion = "1.0.6" criterion = { version = "0.5" } futures = { version = "0.3", features = ["thread-pool"] } env_logger = "0.10.1" futures-time = "3.0.0" log = "0.4.20" rand = "0.8.5" [[example]] name = "duo" crate-type = ["bin"] [[example]] name = "dig" crate-type = ["bin"] [[example]] name = "backpressure" crate-type = ["bin"] [[bench]] name = "bench_main" harness = false [features] default = ["deny_unconsumed_messages", "deny_unsent_messages", "async_channel"] # Generate a file containing the generated code that # is used via `include_str!`. expand = ["orchestra-proc-macro/expand"] # Generate a connectivity graph in dot-graph form. # Generated file: `${OUT_DIR}/${orchestra|lowercase}-subsystem-messaging.dot` # Use with `dot $path/to/dot.file -Tpng > connection.graph` or use # the generated `*.svg` file directly. # or use a dot-graph viewer of your choice. dotgraph = ["orchestra-proc-macro/dotgraph"] # Creates a compile error if unconsumed messages are encountered deny_unconsumed_messages = ["orchestra-proc-macro/deny_unconsumed_messages"] # Creates a compile error if unsent messages are encountered deny_unsent_messages = ["orchestra-proc-macro/deny_unsent_messages"] # Use async channel in the subsystem message channels (default) async_channel = ["metered/async_channel"] # Use compatibility futures channel in the subsystem message channels futures_channel = ["metered/futures_channel"]