8b889b7
[workspace]
members = [
"lib/*",
"app"
]
resolver = "3"
[workspace.package]
version = "1.0.0"
edition = "2024"
[workspace.dependencies]
auth = { path = "lib/auth" }
cache = { path = "lib/cache" }
chat = { path = "lib/chat" }
config = { path = "lib/config" }
export = { path = "lib/export" }
models = { path = "lib/models" }
push = { path = "lib/push" }
storage = { path = "lib/storage" }
user = { path = "lib/user" }
space = { path = "lib/space" }
issues = { path = "lib/issues" }
git = { path = "lib/git" }
i18n = { path = "lib/i18n" }
imaging = { path = "lib/imaging" }
kenauth = { path = "lib/kenauth" }
kenshell = { path = "lib/kenshell" }
jwt = { path = "lib/jwt" }
webapi = { path = "lib/webapi" }
pulls = { path = "lib/pulls" }
social = { path = "lib/social" }
queue = { path = "lib/queue" }
tokio = "1.53.1"
clap = { version = "4.6.7", features = ["derive"] }
serde = "1.0.229"
serde_json = "1.0.151"
axum = { version = "0.8.9", features = ["ws"] }
tower = "0.5.3"
tower-http = { version = "0.7.0", features = ["trace", "limit", "cors"] }
axum-otel-metrics = "0.14.1"
opentelemetry = "0.32"
opentelemetry_sdk = { version = "0.32.1", features = ["rt-tokio", "trace"] }
opentelemetry-http = "0.32"
# reqwest-rustls: the default client feature set compiles reqwest with no TLS backend,
# so an https OTEL_EXPORTER_OTLP_ENDPOINT would fail every export at request time.
opentelemetry-otlp = { version = "0.32", features = ["reqwest-rustls"] }
tracing-opentelemetry = "0.33"
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "gif"] }
tracing = "0.1.44"
figment = { version = "0.10", features = ["toml", "env"] }
dotenvy = "0.15"
rust-s3-async = "0.35.0"
redis = { version = "1.6.0", features = ["aio", "tokio-comp", "connection-manager", "cluster-async"] }
sea-orm = { version = "2.0.2", features = ["sqlx-postgres", "runtime-tokio-rustls"] }
async-trait = "0.1.92"
base64 = "0.23.1"
rand = "0.8"
sha2 = "0.11.0"
hmac = "0.13"
hkdf = "0.13"
uuid = { version = "1", features = ["v7", "serde"] }
argon2 = "0.6.0"
aes-gcm = "0.10"
time = { version = "0.3", features = ["serde", "serde-human-readable"] }
bytes = "1"
futures = "0.3"
http = "0.2"
http-body-util = "0.1"
tokio-util = { version = "0.7", features = ["io"] }
flate2 = "1"
globset = "0.4"
utoipa = { version = "5.5", features = ["axum_extras", "time", "uuid"] }
utoipa-swagger-ui = { version = "9", features = ["axum"] }
thiserror = "2.0.20"
hayro = { version = "0.7.1", features = ["embed-fonts", "embed-cmaps"] }
maud = { version = "0.27", features = ["axum"] }
pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json", "gzip", "brotli", "deflate"] }
livekit-api = { version = "0.7.1", default-features = false, features = ["services", "webhooks", "rustls-tls-webpki-roots"] }
livekit-protocol = "0.7.13"
anyhow = "1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
jsonwebtoken = "9"
regex = "1"
url = "2"
percent-encoding = "2"
encoding_rs = "0.8"
tonic = { version = "0.14", default-features = false, features = ["channel", "codegen", "router", "server"] }
tonic-prost = "0.14"
prost = "0.14"
prost-types = "0.14"
tonic-prost-build = "0.14"
rocketmq-client-rust = "0.9.0"
rocketmq-common = "0.9.0"