2025-07-07 23:05:19 +01:00
|
|
|
|
|
|
|
|
[workspace]
|
|
|
|
|
resolver = "2"
|
|
|
|
|
members = [
|
2026-02-08 20:18:46 +00:00
|
|
|
"crates/framework/crates/rustelo_core",
|
|
|
|
|
"crates/framework/crates/rustelo_web",
|
|
|
|
|
"crates/framework/crates/rustelo_auth",
|
|
|
|
|
"crates/framework/crates/rustelo_content",
|
|
|
|
|
"crates/framework/crates/rustelo_cli",
|
|
|
|
|
"crates/foundation/crates/rustelo_client",
|
|
|
|
|
"crates/foundation/crates/rustelo_server",
|
|
|
|
|
"crates/foundation/crates/rustelo_core_lib",
|
|
|
|
|
"crates/foundation/crates/rustelo_core_types",
|
|
|
|
|
"crates/foundation/crates/rustelo_language",
|
|
|
|
|
"crates/foundation/crates/rustelo_routing",
|
|
|
|
|
"crates/foundation/crates/rustelo_components",
|
|
|
|
|
"crates/foundation/crates/rustelo_pages",
|
|
|
|
|
"crates/foundation/crates/rustelo_tools",
|
|
|
|
|
"crates/foundation/crates/rustelo_utils",
|
|
|
|
|
"crates/foundation/crates/rustelo_macros",
|
2025-07-07 23:05:19 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[workspace.dependencies]
|
2026-02-08 20:18:46 +00:00
|
|
|
# Core dependencies
|
|
|
|
|
|
|
|
|
|
# Rustelo foundation crates
|
|
|
|
|
rustelo_utils = { path = "crates/foundation/crates/rustelo_utils" }
|
|
|
|
|
rustelo_core_types = { path = "crates/foundation/crates/rustelo_core_types" }
|
|
|
|
|
rustelo_language = { path = "crates/foundation/crates/rustelo_language" }
|
|
|
|
|
rustelo_routing = { path = "crates/foundation/crates/rustelo_routing" }
|
|
|
|
|
rustelo_core_lib = { path = "crates/foundation/crates/rustelo_core_lib" }
|
|
|
|
|
rustelo_components = { path = "crates/foundation/crates/rustelo_components" }
|
|
|
|
|
rustelo_pages = { path = "crates/foundation/crates/rustelo_pages" }
|
|
|
|
|
rustelo_client = { path = "crates/foundation/crates/rustelo_client" }
|
|
|
|
|
rustelo_server = { path = "crates/foundation/crates/rustelo_server" }
|
|
|
|
|
rustelo_tools = { path = "crates/foundation/crates/rustelo_tools" }
|
|
|
|
|
rustelo_macros = { path = "crates/foundation/crates/rustelo_macros" }
|
|
|
|
|
|
|
|
|
|
# Rustelo framework crates
|
|
|
|
|
rustelo_core = { path = "crates/framework/crates/rustelo_core" }
|
|
|
|
|
rustelo_web = { path = "crates/framework/crates/rustelo_web" }
|
|
|
|
|
rustelo_auth = { path = "crates/framework/crates/rustelo_auth" }
|
|
|
|
|
rustelo_content = { path = "crates/framework/crates/rustelo_content" }
|
|
|
|
|
rustelo_cli = { path = "crates/framework/crates/rustelo_cli" }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Leptos ecosystem
|
|
|
|
|
leptos = { version = "0.8.15", features = ["hydrate", "ssr"] }
|
|
|
|
|
leptos_router = { version = "0.8.11", features = ["ssr"] }
|
|
|
|
|
leptos_axum = { version = "0.8.7" }
|
|
|
|
|
leptos_config = { version = "0.8.8" }
|
|
|
|
|
leptos_meta = { version = "0.8.5" }
|
|
|
|
|
leptos_integration_utils = { version = "0.8.7" }
|
|
|
|
|
|
|
|
|
|
# Other dependencies
|
2025-07-07 23:05:19 +01:00
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
2026-02-08 20:18:46 +00:00
|
|
|
axum = "0.8.8"
|
2025-07-07 23:05:19 +01:00
|
|
|
serde_json = "1.0"
|
2026-02-08 20:18:46 +00:00
|
|
|
thiserror = "2.0.18"
|
|
|
|
|
anyhow = "1.0.101"
|
|
|
|
|
rand = "0.9"
|
|
|
|
|
|
|
|
|
|
rand_core = { version = "0.10" }
|
|
|
|
|
#rand_core = { version = "0.6", features = ["getrandom"] }
|
|
|
|
|
getrandom = { version = "0.4", features = ["std", "wasm_js"] }
|
2025-07-07 23:05:19 +01:00
|
|
|
gloo-timers = { version = "0.3", features = ["futures"] }
|
2026-02-08 20:18:46 +00:00
|
|
|
gloo-net = { version = "0.6.0" }
|
|
|
|
|
glob = "0.3.3"
|
|
|
|
|
console_error_panic_hook = "0.1.7"
|
2025-07-07 23:05:19 +01:00
|
|
|
http = "1"
|
2026-02-08 20:18:46 +00:00
|
|
|
log = "0.4.29"
|
|
|
|
|
env_logger = "0.11"
|
|
|
|
|
wasm-bindgen-futures = "0.4.58"
|
|
|
|
|
wasm-bindgen = "0.2.108"
|
|
|
|
|
serde-wasm-bindgen = "0.6.5"
|
2025-07-07 23:05:19 +01:00
|
|
|
console_log = "1"
|
2026-02-08 20:18:46 +00:00
|
|
|
reqwest = { version = "0.13.2", features = ["json"] } # reqwest with JSON parsing support
|
2025-07-07 23:05:19 +01:00
|
|
|
reqwasm = "0.5.0"
|
2026-02-08 20:18:46 +00:00
|
|
|
js-sys = "0.3.85"
|
|
|
|
|
web-sys = { version = "0.3.85" , features = ["Clipboard", "Window", "Navigator", "Permissions", "MouseEvent", "Storage", "console", "File", "SvgElement", "SvgsvgElement", "SvgPathElement", "MediaQueryList"] }
|
|
|
|
|
regex = "1.12.3"
|
2025-07-07 23:05:19 +01:00
|
|
|
tracing = "0.1"
|
|
|
|
|
tracing-subscriber = "0.3"
|
2025-07-11 20:53:20 +01:00
|
|
|
toml = "0.9"
|
2025-07-07 23:05:19 +01:00
|
|
|
fluent = "0.17"
|
|
|
|
|
fluent-bundle = "0.16"
|
2026-02-08 20:18:46 +00:00
|
|
|
fluent-syntax = "0.12"
|
|
|
|
|
unic-langid = { version = "0.9", features = ["unic-langid-macros"] }
|
|
|
|
|
|
|
|
|
|
tokio = { version = "1.49", features = ["rt-multi-thread"]}
|
|
|
|
|
tower = "0.5.3"
|
|
|
|
|
tower-http = { version = "0.6.8", features = ["fs"]}
|
|
|
|
|
|
|
|
|
|
hex = "0.4.3"
|
|
|
|
|
dotenv = "0.15.0"
|
|
|
|
|
async-trait = "0.1.89"
|
|
|
|
|
|
|
|
|
|
once_cell = "1.21.3"
|
|
|
|
|
fluent-templates = { version = "0.13.2", features = ["tera"]}
|
|
|
|
|
|
|
|
|
|
rhai = { version = "1.24", features = ["serde", "only_i64", "no_float"] }
|
|
|
|
|
|
|
|
|
|
# Email support
|
|
|
|
|
lettre = { version = "0.11", features = ["tokio1-native-tls", "smtp-transport", "pool", "hostname", "builder"] }
|
|
|
|
|
handlebars = { version = "6.4" }
|
|
|
|
|
urlencoding = { version = "2.1" }
|
|
|
|
|
|
|
|
|
|
# TLS Support (optional)
|
|
|
|
|
axum-server = { version = "0.8", features = ["tls-rustls"] }
|
|
|
|
|
axum-test = "18.7"
|
|
|
|
|
rustls = { version = "0.23" }
|
|
|
|
|
rustls-pemfile = { version = "2.2" }
|
|
|
|
|
|
|
|
|
|
# Authentication & Authorization (optional)
|
|
|
|
|
jsonwebtoken = { version = "10.3", features = ["rust_crypto"] }
|
|
|
|
|
argon2 = { version = "0.5" }
|
|
|
|
|
uuid = { version = "1.20", features = ["v4", "serde", "js"] }
|
2025-07-07 23:05:19 +01:00
|
|
|
chrono = { version = "0.4", features = ["serde"] }
|
2026-02-08 20:18:46 +00:00
|
|
|
oauth2 = { version = "5.0" }
|
|
|
|
|
tower-sessions = { version = "0.15" }
|
|
|
|
|
sqlx = { version = "0.8.6", features = ["runtime-tokio-rustls", "postgres", "sqlite", "chrono", "uuid", "migrate"] }
|
|
|
|
|
tower-cookies = { version = "0.11" }
|
|
|
|
|
time = { version = "0.3", features = ["serde"] }
|
|
|
|
|
|
|
|
|
|
# 2FA Support (optional)
|
|
|
|
|
totp-rs = { version = "5.7.0" }
|
|
|
|
|
qrcode = { version = "0.14", features = ["svg"] }
|
|
|
|
|
base32 = { version = "0.5" }
|
|
|
|
|
sha2 = { version = "0.10" }
|
|
|
|
|
base64 = { version = "0.22" }
|
|
|
|
|
|
|
|
|
|
# Cryptography dependencies
|
|
|
|
|
aes-gcm = { version = "0.10" }
|
|
|
|
|
clap = { version = "4.5", features = ["derive"] }
|
|
|
|
|
|
|
|
|
|
# Metrics dependencies
|
|
|
|
|
prometheus = { version = "0.14" }
|
|
|
|
|
|
|
|
|
|
# Content Management & Rendering (optional)
|
|
|
|
|
pulldown-cmark = { version = "0.13.0", features = ["simd"] }
|
|
|
|
|
serde_yaml = { version = "0.9" }
|
|
|
|
|
tempfile = { version = "3.24" }
|
|
|
|
|
tera = { version = "1.20" }
|
|
|
|
|
unicode-normalization = { version = "0.1" }
|
|
|
|
|
|
|
|
|
|
paste = "1.0.15"
|
|
|
|
|
typed-builder = "0.23"
|
|
|
|
|
|
|
|
|
|
notify = { version = "8.2.0", default-features = false, features = ["macos_fsevent"] }
|
|
|
|
|
lru = "0.16"
|
|
|
|
|
ammonia = "4.1"
|
|
|
|
|
scraper = "0.25"
|
|
|
|
|
futures = "0.3.31"
|
|
|
|
|
async-compression = { version = "0.4", features = ["gzip", "tokio"] }
|
|
|
|
|
|
|
|
|
|
ratatui = "0.30"
|
|
|
|
|
inquire = "0.9"
|
|
|
|
|
crossterm = "0.29"
|
|
|
|
|
syntect = "5.3"
|
|
|
|
|
similar = "2.7"
|
|
|
|
|
reactive_graph = "0.2.12"
|
|
|
|
|
|
|
|
|
|
syn = { version = "2.0", features = ["full"] }
|
|
|
|
|
comrak = { version = "0.50", features = ["syntect"] }
|
|
|
|
|
|
|
|
|
|
walkdir = "2.5"
|
|
|
|
|
quote = "1.0"
|
|
|
|
|
proc-macro2 = "1.0"
|
|
|
|
|
gray_matter = "0.3"
|
|
|
|
|
ignore = "0.4"
|
|
|
|
|
mockall = "0.14"
|
|
|
|
|
wiremock = "0.6"
|
|
|
|
|
cfg-if = "1.0"
|
|
|
|
|
html-escape = "0.2"
|
|
|
|
|
|
|
|
|
|
shellexpand = "3.1"
|
|
|
|
|
semver = "1.0"
|
|
|
|
|
pathdiff = "0.2"
|
|
|
|
|
|
|
|
|
|
dialoguer = "0.12"
|
|
|
|
|
console = "0.16"
|
|
|
|
|
indicatif = "0.18"
|
|
|
|
|
|
|
|
|
|
[profile.release]
|
|
|
|
|
codegen-units = 1
|
|
|
|
|
lto = true
|
|
|
|
|
opt-level = "z"
|