Files
2026-06-01 13:03:20 +08:00

125 lines
2.7 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 = "document-parser"
version = "0.1.28"
edition = "2024"
repository = "https://github.com/nuwax-ai/mcp-proxy"
[package.metadata.dist]
dist = false
[dependencies]
# HTTP框架和异步运行时
axum = { workspace = true }
tokio = { workspace = true, features = [
"macros",
"net",
"rt",
"rt-multi-thread",
"signal",
"io-util",
"process",
] }
tokio-stream = "0.1"
tokio-util = { version = "0.7", features = ["io"] }
tower = { workspace = true }
tower-http = { workspace = true, features = [
"compression-full",
"cors",
"fs",
"trace",
] }
# 序列化和配置
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
# OpenAPI文档生成
utoipa = { workspace = true, features = ["axum_extras", "chrono", "uuid"] }
utoipa-swagger-ui = { workspace = true, features = ["axum"] }
# 数据库和存储
sled = "0.34"
aliyun-oss-rust-sdk = { workspace = true }
oss-client = { workspace = true }
# Markdown处理
pulldown-cmark = "0.13"
pulldown-cmark-toc = "0.7"
# 工具库
anyhow = { workspace = true }
thiserror = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
# 国际化支持
rust-i18n = { workspace = true }
uuid = { workspace = true, features = ["v4", "v7", "serde"] }
log = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
tracing-appender = { workspace = true }
async-trait = "0.1"
once_cell = "1.19"
parking_lot = "0.12"
derive_builder = { workspace = true }
# HTTP客户端
reqwest = { workspace = true, features = ["stream", "json"] }
http = { workspace = true }
url = "2.5"
# 文件处理
mime = "0.3"
futures = { workspace = true }
futures-util = "0.3"
flate2 = "1.0"
tar = "0.4"
# 配置管理
clap = { workspace = true, features = ["derive", "env"] }
dashmap.workspace = true
moka = { workspace = true, features = ["future"] }
regex = "1.11.1"
tempfile = "3.20.0"
sha2 = "0.10"
async-recursion = "1.0"
num_cpus = "1.16"
rand = { workspace = true }
pulldown-cmark-to-cmark = "21.0.0"
# 系统调用Unix系统
[target.'cfg(unix)'.dependencies]
libc = "0.2"
# Windows API
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["fileapi"] }
[dev-dependencies]
criterion = { workspace = true }
env_logger = "0.11"
tokio-test = "0.4"
quickcheck = "1.0"
quickcheck_macros = "1.0"
proptest = "1.4"
axum-test = "17.3"
mockall = "0.13"
wiremock = "0.6"
rstest = "0.26"
test-case = "3.3"
serial_test = "3.1"
insta = "1.40"
fake = { version = "4.4", features = ["derive", "chrono", "uuid"] }
bytes = "1.0"
[[bench]]
name = "document_parsing_bench"
harness = false
# 命令行二进制配置
[[bin]]
name = "document-parser"
path = "src/main.rs"