cano 0.8.0

High-performance orchestration engine for building resilient, self-healing systems in Rust. Uses Finite State Machines (FSM) for strict, type-safe transitions.
Documentation
[package]
name = "cano"
version = "0.8.0"
homepage = "https://nassor.github.io/cano/"
edition = "2024"
rust-version = "1.89.0"
description = "High-performance orchestration engine for building resilient, self-healing systems in Rust. Uses Finite State Machines (FSM) for strict, type-safe transitions."
license = "MIT"
repository = "https://github.com/nassor/cano"
readme = "README.md"
keywords = ["ai", "async", "workflow", "data-processing", "scheduler"]
categories = ["finance", "development-tools", "concurrency", "asynchronous", "science"]
authors = ["Nassor Frazier-Silva"]

[dependencies]
async-trait = "0.1"
tokio = { version = "1.51.1", features = ["macros", "sync", "time", "rt-multi-thread"] }
rand = "0.10"
chrono = { version = "0.4", features = ["serde"], optional = true }
cron = { version = "0.16", optional = true }
futures-util = "0.3"
tracing = { version = "0.1", optional = true }

[features]
scheduler = ["dep:chrono", "dep:cron", "tokio/signal"]
tracing = ["dep:tracing"]
all = ["scheduler", "tracing"]

[dev-dependencies]
criterion = { version = "0.8", features = ["html_reports", "async_tokio"] }
reqwest = { version = "0.13", features = ["json"] }
rig-core = "0.34"
wide = "1.2"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
chrono = { version = "0.4", features = ["serde"] }
tokio = { version = "1.51.1", features = ["macros", "sync", "time", "rt-multi-thread", "signal"] }

[[example]]
name = "ai_workflow_yes_and"
path = "examples/ai_workflow_yes_and.rs"

[[example]]
name = "workflow_simple"
path = "examples/workflow_simple.rs"

[[example]]
name = "workflow_book_prepositions"
path = "examples/workflow_book_prepositions.rs"

[[example]]
name = "workflow_negotiation"
path = "examples/workflow_negotiation.rs"

[[example]]
name = "workflow_simd_matrix_pipeline"
path = "examples/workflow_simd_matrix_pipeline.rs"

[[example]]
name = "scheduler_scheduling"
path = "examples/scheduler_scheduling.rs"
required-features = ["scheduler"]

[[example]]
name = "scheduler_duration_scheduling"
path = "examples/scheduler_duration_scheduling.rs"
required-features = ["scheduler"]

[[example]]
name = "scheduler_graceful_shutdown"
path = "examples/scheduler_graceful_shutdown.rs"
required-features = ["scheduler"]

[[example]]
name = "scheduler_mixed_workflows"
path = "examples/scheduler_mixed_workflows.rs"
required-features = ["scheduler"]

[[example]]
name = "scheduler_book_prepositions"
path = "examples/scheduler_book_prepositions.rs"
required-features = ["scheduler"]

[[example]]
name = "scheduler_mapreduce_books"
path = "examples/scheduler_mapreduce_books.rs"
required-features = ["scheduler"]

[[example]]
name = "tracing_demo"
path = "examples/tracing_demo.rs"
required-features = ["tracing", "scheduler"]

[[example]]
name = "workflow_stack_store"
path = "examples/workflow_stack_store.rs"

[[example]]
name = "mixed_workflow"
path = "examples/mixed_workflow.rs"

[[example]]
name = "task_interface_demo"
path = "examples/task_interface_demo.rs"

[[example]]
name = "task_simple"
path = "examples/task_simple.rs"

[[example]]
name = "workflow_ad_exchange"
path = "examples/workflow_ad_exchange.rs"

[[example]]
name = "workflow_partial_results"
path = "examples/workflow_partial_results.rs"

[[example]]
name = "workflow_split_join"
path = "examples/workflow_split_join.rs"

[[bench]]
name = "workflow_performance"
harness = false

[[bench]]
name = "node_performance"
harness = false

[[bench]]
name = "store_performance"
harness = false

[[bench]]
name = "task_performance"
harness = false

[[bench]]
name = "store_shared_performance"
harness = false