Cargo.toml
⎇
Raw
1[package]
2name = "server"
3version = "0.1.0"
4edition = "2024"
5license = "AGPL-3.0-or-later"
6
7[[bin]]
8name = "filebrowser-ng"
9path = "src/main.rs"
10
11[dependencies]
12api-types = { path = "../api-types" }
13anyhow = "1"
14argon2 = "0.5"
15axum = "0.8"
16bytes = "1"
17chrono = { version = "0.4", features = ["serde"] }
18clap = { version = "4", features = ["derive", "env"] }
19# WebDAV protocol only. The bundled `localfs`/`memfs` backends are off: the
20# dav filesystem is `api::dav`, which goes through `crate::fs` so that root
21# containment, read-only roots and share scoping apply to a mount too.
22dav-server = { version = "0.11", default-features = false }
23# `default-features = false` drops the `cfb` dependency (compound-document
24# detection we do not need) and makes this a zero-dependency crate.
25infer = { version = "0.16", default-features = false, features = ["alloc"] }
26mime_guess = "2"
27multer = { version = "3", features = ["tokio-io"] }
28rand = "0.8"
29rusqlite = { version = "0.37", features = ["bundled"] }
30serde = { version = "1", features = ["derive"] }
31serde_json = "1"
32sha2 = "0.10"
33thiserror = "2"
34tokio = { version = "1", features = [
35 "rt-multi-thread",
36 "macros",
37 "fs",
38 "io-util",
39 "sync",
40 "time",
41 "signal",
42] }
43tar = "0.4"
44flate2 = "1"
45zstd = "0.13"
46# Deflate only; the defaults add AES, bzip2, lzma, ppmd, zopfli.
47zip = { version = "9.0.0-pre3", default-features = false, features = ["deflate-flate2-zlib-rs"] }
48tower-http = { version = "0.6", features = ["trace", "set-header"] }
49# Named in the `DavLockSystem` impl. dav-server does not re-export it, so the
50# version has to track dav-server's own.
51xmltree = "0.12"
52futures-util = "0.3"
53# Typed `Authorization: Basic` parsing. Already in the tree via dav-server.
54headers = "0.4"
55tokio-stream = { version = "0.1", features = ["sync"] }
56tracing = "0.1"
57tracing-subscriber = { version = "0.3", features = ["env-filter"] }
58ignore = "0.4"
59grep = "0.4"
60
61[dev-dependencies]
62base64 = "0.22"
63tempfile = "3"
64tower = { version = "0.5", features = ["util"] }
65http-body-util = "0.1"
66bytes = "1"
67flate2 = "1"
68zstd = "0.13"
69tar = "0.4"
70zip = { version = "9.0.0-pre3", default-features = false, features = ["deflate-flate2-zlib-rs"] }
71
72[dependencies.rust-embed]
73version = "8"
74optional = true
75
76[features]
77# Embed the frontend (built into server/dist by `just build`).
78# Without this feature the server reads the frontend from disk at runtime
79# (Trunk's output directory, or $FBNG_DIST), which is the dev flow.
80embedded = ["dep:rust-embed"]
81