-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
115 lines (99 loc) · 3.93 KB
/
Copy pathCargo.toml
File metadata and controls
115 lines (99 loc) · 3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
[package]
name = "searchbox"
version = "0.3.17"
edition = "2021"
description = "SearchBox — local-first document search server"
license = "AGPL-3.0-or-later"
[dependencies]
axum = { version = "0.8", features = ["macros", "multipart"] }
tokio = { version = "1", features = ["full"] }
tower = "0.5"
tower-http = { version = "0.6", features = ["fs", "trace"] }
sqlx = { version = "0.8", default-features = false, features = [
"runtime-tokio",
"sqlite",
"chrono",
"macros",
"migrate",
] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
minijinja = { version = "2", features = ["loader"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-appender = "0.2"
anyhow = "1"
thiserror = "2"
dotenvy = "0.15"
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
uuid = { version = "1", features = ["v4", "serde"] }
tower-sessions = "0.14"
tower-sessions-sqlx-store = { version = "0.15", features = ["sqlite"] }
argon2 = "0.5"
password-hash = { version = "0.5", features = ["std"] }
rand = "0.8"
time = "0.3"
pbkdf2 = "0.12"
sha2 = "0.10"
aes-gcm = "0.10"
hex = "0.4"
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls", "multipart", "cookies"] }
bytes = "1"
futures = "0.3"
dashmap = "6"
urlencoding = "2"
# Document extraction (pure-Rust replacement for the C++ doc_extractor).
pdf-extract = "0.7"
zip = { version = "2", default-features = false, features = ["deflate"] }
quick-xml = "0.36"
pulldown-cmark = { version = "0.12", default-features = false }
scraper = "0.20"
calamine = "0.26"
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "bmp", "gif", "tiff"] }
encoding_rs = "0.8"
# ZIM archive reading (Kiwix/Wikipedia). Pure-Rust reader; note it pulls in
# C-backed zstd-sys + lzma-sys (vendored, compiled via `cc`) for cluster
# decompression — the one place we lean on compiled-C deps, unavoidable for ZIM.
zim = "0.4"
# Embed templates/ and static/ into the release binary so deploys are a
# single executable. In debug builds rust-embed reads from disk, so edits
# are live without rebuilding.
rust-embed = { version = "8", default-features = false, features = ["interpolate-folder-path", "include-exclude"] }
mime_guess = "2"
# Windows-only at the build script level (see build.rs). Keeping it in
# [build-dependencies] means non-Windows builds don't even pull it.
[target.'cfg(windows)'.build-dependencies]
winresource = "0.1"
# Desktop window — Windows release-only UX. wry renders the existing web UI
# (served by the in-process axum server on localhost) inside a native
# WebView2 window, so SearchBox is a real desktop app instead of popping the
# user's browser. tao supplies the event loop + window that wry attaches the
# WebView to; wry is windowing-agnostic via raw-window-handle 0.6, the same
# version tao 0.30 uses.
[target.'cfg(windows)'.dependencies]
tao = "0.30"
wry = "0.46"
# Native file/open-folder dialogs for the desktop "Browse" buttons. Windows-only
# (the desktop build); the Axum picker endpoint is cfg-gated to match.
rfd = "0.15"
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
# Windows MSI build (cargo-wix). Invoked indirectly by `wix\build.ps1`.
# `main.wxs` lives in the repo; cargo-wix passes Cargo's version in as
# $(var.Version), so bumping `package.version` above is the only knob
# the installer version tracks.
[package.metadata.wix]
name = "SearchBox"
product-name = "SearchBox"
manufacturer = "SourceBox LLC"
upgrade-guid = "9B4E2E71-7B51-4E3E-9D6B-2C41FA8B8F1B"
path-guid = "C6B7D6C0-5A09-4B4B-9C62-8B8F5C1F5E2D"
license = false
eula = false
# The upstream `zim` crate (0.4.0) is unmaintained and overflows/panics opening
# modern (libzim 6.1+) ZIM files — it mis-parses the now-sentinel `titlePtrPos`.
# Pull in a slim, patched copy from vendor/zim instead (see vendor/zim/Cargo.toml).
[patch.crates-io]
zim = { path = "vendor/zim" }