[package]
name = "forgex"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
readme = "README.md"
description = "CLI and runtime for the Forge full-stack framework"
keywords = ["framework", "postgresql", "full-stack", "cli"]
categories = ["web-programming", "command-line-utilities"]
include = [
"Cargo.toml",
"build.rs",
"generated/examples.tar",
"README.md",
"src/**",
".sqlx/**",
]
[lints]
workspace = true
[lib]
name = "forge"
path = "src/lib.rs"
[[bin]]
name = "forge"
path = "src/main.rs"
[dependencies]
forge-core = { version = "0.10.2", path = "../forge-core" }
forge-runtime = { version = "0.10.2", path = "../forge-runtime", default-features = false }
forge-codegen = { version = "0.10.2", path = "../forge-codegen" }
forge-macros = { version = "0.10.2", path = "../forge-macros" }
tokio = { workspace = true }
tokio-util = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
anyhow = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
clap = { version = "4.5", features = ["derive"] }
clap_complete = "4.5"
console = "0.16"
dotenvy = "0.15"
toml = { workspace = true }
sqlx = { workspace = true }
reqwest = { workspace = true }
include_dir = "0.7"
inventory = { workspace = true }
ipnet = { workspace = true }
axum = { workspace = true, optional = true }
tower = { workspace = true, optional = true }
tower-http = { workspace = true, optional = true }
tracing-opentelemetry = { workspace = true, optional = true }
opentelemetry = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
opentelemetry-otlp = { workspace = true, optional = true }
rust-embed = { workspace = true, optional = true }
mime_guess = { workspace = true, optional = true }
[features]
default = ["full"]
gateway = [
"forge-runtime/gateway",
"dep:axum",
"dep:tower",
"dep:tower-http",
]
jobs = ["forge-runtime/jobs"]
workflows = ["jobs", "forge-runtime/workflows"]
cron = ["jobs", "forge-runtime/cron"]
daemons = ["forge-runtime/daemons"]
mcp-oauth = ["gateway", "forge-runtime/mcp-oauth"]
geoip = ["gateway", "forge-runtime/geoip"]
otel = [
"forge-runtime/otel",
"dep:tracing-opentelemetry",
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
]
full = [
"gateway",
"mcp-oauth",
"jobs",
"workflows",
"cron",
"daemons",
"otel",
]
worker = ["jobs", "workflows", "cron", "daemons", "otel"]
api = ["gateway", "otel"]
minimal = ["gateway"]
testcontainers = ["forge-core/testcontainers", "forge-runtime/testcontainers"]
embedded-frontend = ["dep:rust-embed", "dep:mime_guess"]
[target.'cfg(unix)'.dependencies]
nix = { version = "0.29", features = ["signal", "hostname"] }
[dev-dependencies]
tempfile = { workspace = true }
trybuild = { workspace = true }
[build-dependencies]
tar = "0.4"