[workspace] members = [ ".", "plugins/defectdojo", "plugins/dependencytrack", "plugins/keycloak", "charybdis-server", ] default-members = ["charybdis-server"] [package] name = "charybdis" version = "0.1.0" edition = "2024" description = "Security-native platform engineering tool — software catalog, vulnerability management, and compliance in one binary" authors = ["Guillaume GRABÉ"] keywords = ["platform-engineering", "security", "vulnerability-management", "devsecops", "catalog"] categories = ["development-tools"] [dependencies] prost = "0.14" prost-types = "0.14" tonic = { version = "0.14.2", features = ["tls-ring", "tls-connect-info"] } tonic-prost = "0.14" tokio = { version = "1.48", features = ["full"] } uuid = { version = "1.18", features = [ "v4", "serde", ] } # Used for generating placeholder IDs tonic-reflection = "0.14" # Required for gRPC reflection (used by tools like grpcurl) sqlx = { version = "0.8.6", features = [ "runtime-tokio-rustls", "postgres", "uuid", "chrono", "json", ] } chrono = { version = "0.4.42", features = ["serde"] } anyhow = "1.0.100" serde = "1.0.228" serde_json = "1.0.145" serde_yaml = "0.9" async-trait = "0.1" thiserror = "2.0" toml = "0.8" regex = "1.10" # HTTP server for YAML adapter axum = "0.7" tower = "0.5" tower-http = { version = "0.6", features = ["cors", "trace"] } # Plugin system - scheduling and cron tokio-cron-scheduler = "0.13" cron = "0.12" # Findings - fingerprint hashing sha2 = "0.10" hex = "0.4" # HTTP client for plugins reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Security - mTLS and RBAC x509-parser = "0.18" rustls = "0.23" rustls-pemfile = "2.2" tokio-rustls = "0.26" wildmatch = "2.5" base64 = "0.22" # OpenTelemetry - Observability stack tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } tracing-opentelemetry = "0.32" opentelemetry = { version = "0.31", features = ["trace", "metrics", "logs"] } opentelemetry_sdk = { version = "0.31", features = ["rt-tokio", "trace", "metrics", "logs"] } opentelemetry-otlp = { version = "0.31", features = ["trace", "metrics", "logs", "grpc-tonic"] } opentelemetry-semantic-conventions = "0.31" [build-dependencies] prost-build = "0.14" tonic-build = "0.14" tonic-prost-build = "0.14" [dev-dependencies] testcontainers = "0.23" testcontainers-modules = { version = "0.11", features = ["postgres"] }