[package]
edition = "2021"
name = "corvus"
version = "0.5.0"
authors = ["theonlyhennygod"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Zero overhead. Zero compromise. 100% Rust. The fastest, smallest AI assistant."
readme = "README.md"
keywords = [
"ai",
"agent",
"cli",
"assistant",
"chatbot",
]
categories = [
"command-line-utilities",
"api-bindings",
]
license = "Apache-2.0"
repository = "https://github.com/dallay/corvus"
[features]
browser-native = ["dep:fantoccini"]
default = [
"hardware",
"mcp-runtime",
]
fantoccini = ["browser-native"]
hardware = [
"nusb",
"tokio-serial",
]
landlock = ["sandbox-landlock"]
mcp-runtime = []
memory-surreal = ["dep:surrealdb"]
peripheral-rpi = ["rppal"]
probe = ["dep:probe-rs"]
rag-pdf = ["dep:pdf-extract"]
sandbox-bubblewrap = []
sandbox-landlock = ["dep:landlock"]
[lib]
name = "corvus"
path = "src/lib.rs"
[[bin]]
name = "corvus"
path = "src/main.rs"
[[example]]
name = "custom_channel"
path = "examples/custom_channel.rs"
[[example]]
name = "custom_memory"
path = "examples/custom_memory.rs"
[[example]]
name = "custom_provider"
path = "examples/custom_provider.rs"
[[example]]
name = "custom_tool"
path = "examples/custom_tool.rs"
[[test]]
name = "admin_config_api_integration"
path = "tests/admin_config_api_integration.rs"
[[test]]
name = "agent_e2e"
path = "tests/agent_e2e.rs"
[[test]]
name = "agent_loop_integration"
path = "tests/agent_loop_integration.rs"
[[test]]
name = "cli_loop_events_e2e"
path = "tests/cli_loop_events_e2e.rs"
[[test]]
name = "dockerignore_test"
path = "tests/dockerignore_test.rs"
[[test]]
name = "legacy_loop_guard"
path = "tests/legacy_loop_guard.rs"
[[test]]
name = "mcp_config_validation"
path = "tests/mcp_config_validation.rs"
[[test]]
name = "mcp_execution_limits"
path = "tests/mcp_execution_limits.rs"
[[test]]
name = "mcp_native_regression"
path = "tests/mcp_native_regression.rs"
[[test]]
name = "mcp_policy_approval_parity"
path = "tests/mcp_policy_approval_parity.rs"
[[test]]
name = "mcp_registry_integration"
path = "tests/mcp_registry_integration.rs"
[[test]]
name = "mcp_runtime_e2e"
path = "tests/mcp_runtime_e2e.rs"
[[test]]
name = "memory_comparison"
path = "tests/memory_comparison.rs"
[[test]]
name = "mission_config_toggle"
path = "tests/mission_config_toggle.rs"
[[test]]
name = "mission_entrypoint_parity"
path = "tests/mission_entrypoint_parity.rs"
[[test]]
name = "mission_governance_integration"
path = "tests/mission_governance_integration.rs"
[[test]]
name = "mission_lifecycle_integration"
path = "tests/mission_lifecycle_integration.rs"
[[test]]
name = "mission_security_parity"
path = "tests/mission_security_parity.rs"
[[test]]
name = "update_system_integration"
path = "tests/update_system_integration.rs"
[[test]]
name = "whatsapp_webhook_security"
path = "tests/whatsapp_webhook_security.rs"
[[bench]]
name = "agent_benchmarks"
path = "benches/agent_benchmarks.rs"
harness = false
[dependencies.anyhow]
version = "1.0"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
features = [
"http1",
"json",
"tokio",
"query",
"ws",
]
default-features = false
[dependencies.base64]
version = "0.22"
[dependencies.bytes]
version = "1"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.chrono]
version = "0.4"
features = [
"clock",
"std",
"serde",
]
default-features = false
[dependencies.chrono-tz]
version = "0.10"
[dependencies.clap]
version = "4.5.60"
features = ["derive"]
[dependencies.console]
version = "0.16"
[dependencies.const-oid]
version = "0.9"
[dependencies.cron]
version = "0.15"
[dependencies.dialoguer]
version = "0.12"
features = ["fuzzy-select"]
[dependencies.directories]
version = "6.0"
[dependencies.fantoccini]
version = "0.22.0"
features = ["rustls-tls"]
optional = true
default-features = false
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
features = ["sink"]
default-features = false
[dependencies.glob]
version = "0.3"
[dependencies.hex]
version = "0.4"
[dependencies.hmac]
version = "0.12"
[dependencies.hostname]
version = "0.4.2"
[dependencies.http-body-util]
version = "0.1"
[dependencies.lettre]
version = "0.11.19"
features = [
"builder",
"smtp-transport",
"rustls-tls",
]
default-features = false
[dependencies.mail-parser]
version = "0.11.2"
[dependencies.nusb]
version = "0.2"
optional = true
default-features = false
[dependencies.opentelemetry]
version = "0.31"
features = [
"trace",
"metrics",
]
default-features = false
[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
"trace",
"metrics",
"http-proto",
"reqwest-client",
"reqwest-rustls-webpki-roots",
]
default-features = false
[dependencies.opentelemetry_sdk]
version = "0.31"
features = [
"trace",
"metrics",
]
default-features = false
[dependencies.parking_lot]
version = "0.12"
[dependencies.pdf-extract]
version = "0.10"
optional = true
[dependencies.probe-rs]
version = "0.30"
optional = true
[dependencies.prometheus]
version = "0.14"
default-features = false
[dependencies.prost]
version = "0.14"
default-features = false
[dependencies.rand]
version = "0.9"
[dependencies.regex]
version = "1.12.3"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
"blocking",
"multipart",
"stream",
]
default-features = false
[dependencies.ring]
version = "0.17"
[dependencies.rusqlite]
version = "0.38"
features = ["bundled"]
[dependencies.rustls]
version = "0.23"
[dependencies.rustls-pki-types]
version = "1.14.0"
[dependencies.rustls-webpki]
version = "0.103"
features = ["std"]
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false
[dependencies.serde_json]
version = "1.0"
features = ["std"]
default-features = false
[dependencies.sha2]
version = "0.10"
[dependencies.shellexpand]
version = "3.1.2"
[dependencies.sigstore]
version = "0.13"
features = [
"bundle",
"sigstore-trust-root",
"rustls-tls",
]
default-features = false
[dependencies.subtle]
version = "2.6"
[dependencies.surrealdb]
version = "2.3"
features = [
"protocol-ws",
"rustls",
]
optional = true
default-features = false
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.42"
features = [
"rt-multi-thread",
"macros",
"time",
"net",
"io-util",
"sync",
"process",
"io-std",
"fs",
"signal",
]
default-features = false
[dependencies.tokio-rustls]
version = "0.26.4"
[dependencies.tokio-serial]
version = "5.4.5"
optional = true
default-features = false
[dependencies.tokio-tungstenite]
version = "0.24"
features = ["rustls-tls-webpki-roots"]
[dependencies.tokio-util]
version = "0.7"
default-features = false
[dependencies.toml]
version = "1.0"
[dependencies.tower]
version = "0.5"
default-features = false
[dependencies.tower-http]
version = "0.6"
features = [
"limit",
"timeout",
]
default-features = false
[dependencies.tracing]
version = "0.1"
default-features = false
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"fmt",
"ansi",
"env-filter",
]
default-features = false
[dependencies.url]
version = "2.5"
[dependencies.urlencoding]
version = "2.1.3"
[dependencies.uuid]
version = "1.21.0"
features = [
"v4",
"std",
]
default-features = false
[dependencies.wasmi]
version = "0.40"
features = ["std"]
optional = true
default-features = false
[dependencies.webpki-roots]
version = "1.0.6"
[dependencies.x509-cert]
version = "0.2"
features = [
"pem",
"std",
]
default-features = false
[dependencies.zeroize]
version = "1.8"
[dev-dependencies.criterion]
version = "=0.5.1"
features = ["async_tokio"]
[dev-dependencies.rcgen]
version = "0.13"
[dev-dependencies.tempfile]
version = "=3.25.0"
[dev-dependencies.wat]
version = "=1.245.1"
[target.'cfg(target_os = "linux")'.dependencies.landlock]
version = "0.4"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.rppal]
version = "0.22"
optional = true
[target."cfg(windows)".dependencies.windows-sys]
version = "0.59"
features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_Storage_FileSystem",
]
[profile.dist]
opt-level = "z"
lto = "fat"
codegen-units = 1
panic = "abort"
inherits = "release"
strip = true
[profile.release]
opt-level = "z"
lto = "thin"
codegen-units = 1
panic = "abort"
strip = true
[profile.release-fast]
codegen-units = 8
inherits = "release"