nabla-cli 0.1.2

An OSS SAST/SCA API for calculating your SSCS gradients
Documentation
[package]
name = "nabla-cli"
version = "0.1.2"
edition = "2024"
description = "An OSS SAST/SCA API for calculating your SSCS gradients"
keywords = ["security", "binary-analysis", "cli", "sbom", "vulnerability"]
categories = ["command-line-utilities", "development-tools"]
license = "MIT" # or your preferred license
repository = "https://github.com/Atelier-Logos/nabla"
homepage = "https://nabla.atelierlogos.studio"
include = [
    "src/**/*.rs",
    "Cargo.toml", 
    "README.md",
    "LICENSE"
]

[features]
default = ["oss"]
oss = []
cloud = ["webbrowser", "tiny_http", "urlencoding"]
private = ["doppler-rs"]

[dependencies]
# Web server framework
axum = { version = "0.7", features = ["multipart", "macros"] }
tokio = { version = "1.0", features = ["full"] }
tower = { version = "0.4", features = ["util"] }
tower-http = { version = "0.5", features = ["cors", "trace"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Database
uuid = { version = "1.0", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }

# HTTP client
reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls", "multipart", "blocking"] }
ureq = { version = "2.9", features = ["json"] }

# FIPS-compliant TLS support
rustls = "0.21"
rustls-pemfile = "1.0"
webpki-roots = "0.25"
hyper-rustls = "0.24"

# Error handling
anyhow = "1.0"
thiserror = "1.0"

# Environment variables
dotenvy = "0.15"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Cargo integration
cargo_metadata = "0.18"
syn = { version = "2.0", features = ["full", "parsing", "visit"] }

# File system operations
walkdir = "2.0"
tempfile = "3.0"

# Regex for pattern matching
regex = "1.0"

# Cryptographic hashing
sha2 = "0.10"
blake3 = "1.5"
base64 = "0.21"    # or latest
hex = "0.4"
hmac = "0.12"

# FIPS 140-3 key derivation
pbkdf2 = { version = "0.12", features = ["simple"] }
hkdf = "0.12"

# OpenSSL for FIPS compliance
openssl = "0.10"

# Binary analysis
goblin = "0.10"
object = "0.34"
wasmparser = "0.121"
infer = "0.16"
pelite = "0.10"

# Secret scanning
aho-corasick = "1.1"
entropy = "0.4"

# Additional dependencies for syn
proc-macro2 = "1.0"
quote = "1.0"

# Additional dependencies for which crate
which = "8.0"

# Sigstore for proper attestation signing
sigstore = { version = "0.12", features = ["cosign", "sign", "verify"] }

# For resolving the home directory
home = "0.5"

# Additional dependencies for tar extraction
flate2 = "1.0"
tar = "0.4"

# Additional dependencies for url crate
url = "2.4"

# Concurrency utilities for in-memory rate limiting
once_cell = "1.19"
dashmap = "6.1" 

# Additional dependencies for base64ct
base64ct = "=1.7.3" 
ran = "2.0.1"
rand = "0.9"
jsonwebtoken = "9"
ed25519-dalek = "2"
clap = { version = "4", features = ["derive"] }
async-trait = "0.1"
rpassword = "7.3"

# Interactive shell dependencies (for future use)
tokio-util = "0.7"
fuzzy-matcher = "0.3"

# Cloud authentication dependencies
webbrowser = { version = "1.0", optional = true }
tiny_http = { version = "0.12", optional = true }
urlencoding = { version = "2.1", optional = true }

# Doppler secrets management for private deployments
doppler-rs = { version = "0.0.2", optional = true }

[[bin]]
name = "nabla"
path = "src/bin/nabla_shell.rs"

[[bin]]
name = "test-middleware"
path = "src/bin/test_middleware.rs"

[[bin]]
name = "test-deployment-modes"
path = "src/bin/test_deployment_modes.rs"

[dev-dependencies]
hyper = { version = "0.14.12", features = ["full"] }
tokio = { version = "1.0", features = ["full"] }
http-body-util = "0.1" 
bytes = "1"
multer = "3" 
mockall = "0.12"
wiremock = "0.6"
axum-test = "17"
futures = "0.3"
tempfile = "3.0"