yggdrasil/Cargo.toml
xfy eccaa9f2a9 chore: release v0.4.0
Code Runner + /admin/system + UI 重新设计
2026-07-13 19:59:22 +08:00

118 lines
4.8 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[package]
name = "yggdrasil"
version = "0.4.0"
edition = "2021"
# 构建时工具二进制:用 syntectserver-only 依赖)生成 highlight.css。
# 仅在启用 server feature 时编译——WASM 前端构建(--no-default-features --features web
# 不会拉入 syntect此二进制若也参与编译会因找不到 syntect 报错。
[[bin]]
name = "generate_highlight_css"
required-features = ["server"]
[dependencies]
dioxus = { version = "0.7.9", features = ["fullstack", "router"] }
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1.52", features = ["rt-multi-thread", "macros", "fs", "time", "sync"], optional = true }
tokio-postgres = { version = "0.7", features = ["with-chrono-0_4"], optional = true }
deadpool-postgres = { version = "0.14", optional = true }
argon2 = { version = "0.5", optional = true }
uuid = { version = "1", features = ["v4"], optional = true }
chrono = { version = "0.4", features = ["serde"] }
regex = { version = "1.12", optional = true }
pulldown-cmark = { version = "0.13", optional = true }
dotenvy = { version = "0.15", optional = true }
tracing = { version = "0.1", optional = true, features = ["release_max_level_info"] }
tracing-subscriber = { version = "0.3", optional = true }
rand = { version = "0.8", features = ["getrandom"], optional = true }
http = { version = "1", optional = true }
axum = { version = "0.8", optional = true, features = ["multipart"] }
tower-http = { version = "0.7", optional = true, features = ["compression-full", "timeout", "trace"] }
serde_json = "1.0"
sha2 = { version = "0.10", optional = true }
hex = { version = "0.4", optional = true }
lol_html = { version = "3", optional = true }
syntect = { version = "5", default-features = false, features = ["default-syntaxes", "default-themes", "default-fancy", "html", "parsing", "dump-load", "yaml-load"], optional = true }
# NOTE: WebP decoder is intentionally excluded from the image crate.
# We use zenwebp for both encoding and decoding to ensure consistency.
# Do NOT add "webp" to the features list without updating src/webp.rs.
image = { version = "0.25", optional = true, default-features = false, features = ["jpeg", "png", "gif"] }
zenwebp = { version = "0.4", optional = true }
moka = { version = "0.12", features = ["future", "sync"], optional = true }
governor = { version = "0.10", optional = true }
sysinfo = { version = "0.39", optional = true }
sqlparser = { version = "0.62", optional = true }
dashmap = { version = "6.2", optional = true }
# 中文标题 → 拼音 slug纯 Rust、零依赖安全交叉编译到 musl/FreeBSD
pinyin = { version = "0.11", optional = true }
md-5 = { version = "0.10", optional = true }
futures = { version = "0.3", optional = true }
bytes = { version = "1", optional = true }
bollard = { version = "0.21", optional = true }
# 把 mpsc::Receiver 包成 Stream,供 axum SSE handler 使用。
# axum::response::sse::{Sse,KeepAlive,Event} 随 axum 0.8 自带,无需额外 dep。
tokio-stream = { version = "0.1", features = ["sync"], optional = true }
[target.'cfg(target_arch = "wasm32")'.dependencies]
web-sys = { version = "0.3", features = ["Document", "Window", "Storage", "Element", "HtmlElement", "DomTokenList", "MediaQueryList", "HtmlImageElement", "MouseEvent", "KeyboardEvent", "Node", "EventTarget", "Navigator", "File", "FileList", "FormData", "Request", "RequestInit", "Response", "Headers", "ClipboardEvent", "DataTransfer", "HtmlInputElement", "EventSource", "MessageEvent"] }
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
# 把 serde 类型(如 SqlSchema序列化为 JsValue供 wasm-bindgen extern 传递。
serde-wasm-bindgen = "0.6"
[dev-dependencies]
tokio = { version = "1.52", features = ["rt-multi-thread", "macros", "fs", "time", "sync"] }
serial_test = "3"
[profile.release]
debug = false
opt-level = 3
lto = "thin"
codegen-units = 1
strip = "symbols"
# panic 直接终止WASM 去掉 unwind 元数据以减小体积server 端错误处理走
# Result + ?(见 src/api/error.rs不依赖 panic unwind进程级崩溃由
# systemd/k8s 拉起。这是 Dioxus 官方 optimizing 指南推荐的 WASM 瘦身项。
panic = "abort"
[features]
default = ["web", "server"]
web = ["dioxus/web"]
server = [
"dioxus/server",
"dep:tokio",
"dep:tokio-postgres",
"dep:deadpool-postgres",
"dep:argon2",
"dep:uuid",
"dep:regex",
"dep:pulldown-cmark",
"dep:rand",
"dep:http",
"dep:sha2",
"dep:hex",
"dep:dotenvy",
"dep:tracing",
"dep:tracing-subscriber",
"dep:lol_html",
"dep:syntect",
"dep:axum",
"dep:tower-http",
"dep:image",
"dep:zenwebp",
"dep:moka",
"dep:governor",
"dep:sysinfo",
"dep:sqlparser",
"dep:dashmap",
"dep:pinyin",
"dep:md-5",
"dep:futures",
"dep:bytes",
"dep:bollard",
"dep:tokio-stream",
]