81 lines
2.7 KiB
TOML
81 lines
2.7 KiB
TOML
[package]
|
||
name = "llm-wiki"
|
||
version = "0.6.6"
|
||
description = "LLM Wiki - A personal knowledge base for LLM concepts"
|
||
authors = []
|
||
edition = "2021"
|
||
|
||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||
|
||
[lib]
|
||
name = "llm_wiki_lib"
|
||
crate-type = ["staticlib", "cdylib", "rlib"]
|
||
|
||
[[bin]]
|
||
name = "llm-wiki"
|
||
path = "src/main.rs"
|
||
|
||
[build-dependencies]
|
||
tauri-build = { version = "2", features = [] }
|
||
|
||
[dependencies]
|
||
tauri = { version = "2", features = ["protocol-asset", "tray-icon"] }
|
||
tauri-plugin-opener = "2"
|
||
tauri-plugin-autostart = "2.5.1"
|
||
serde = { version = "1", features = ["derive"] }
|
||
serde_json = "1"
|
||
chrono = { version = "0.4", features = ["clock"] }
|
||
tauri-plugin-dialog = "2.7.1"
|
||
pdfium-render = "0.9"
|
||
tauri-plugin-store = "2.4.2"
|
||
tauri-plugin-http = { version = "2", features = ["unsafe-headers"] }
|
||
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "stream"] }
|
||
tiny_http = "0.12"
|
||
zip = "2"
|
||
calamine = "0.34.0"
|
||
docx-rs = "0.4.20"
|
||
office_oxide = "=0.1.2"
|
||
lancedb = "0.27.2"
|
||
# tokio provided by tauri runtime for async commands
|
||
arrow-array = "57"
|
||
arrow-schema = "57"
|
||
futures = "0.3"
|
||
# Claude Code CLI subprocess transport: spawn `claude` as a child process,
|
||
# stream stdout line-by-line back to the frontend. tokio::process gives us
|
||
# async io and clean cancellation; `which` locates the binary on PATH.
|
||
tokio = { version = "1", features = ["process", "io-util", "sync", "macros", "rt"] }
|
||
which = "7"
|
||
uuid = { version = "1", features = ["v4"] }
|
||
# Multimodal image extraction (Phase 1):
|
||
# `image` re-encodes pdfium's raw bitmap output to PNG so the IPC
|
||
# payload is self-contained (the frontend doesn't need to know
|
||
# about pdfium's internal RGBA layout).
|
||
# `base64` serializes binary image data for Tauri IPC, which is
|
||
# JSON-only — Vec<u8> roundtrips ~1.33× larger than raw bytes but
|
||
# that's acceptable for our ~MB-scale per-image payloads.
|
||
# `sha2` is for the dedup cache (Phase 3) — same image hash =
|
||
# same caption, no redundant VLM calls. Pulled in here so the
|
||
# extraction layer can also expose the hash if a caller wants it.
|
||
image = { version = "0.25", default-features = false, features = ["png"] }
|
||
base64 = "0.22"
|
||
sha2 = "0.10"
|
||
md-5 = "0.10"
|
||
notify = "8"
|
||
walkdir = "2"
|
||
epub = "2.1.5"
|
||
mobi = "0.8"
|
||
html2text = { version = "0.17.1", default-features = false, features = ["xml"] }
|
||
|
||
[dev-dependencies]
|
||
tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread"] }
|
||
|
||
[profile.release]
|
||
codegen-units = 1
|
||
lto = true
|
||
opt-level = "s"
|
||
# Unwind (not abort) so third-party parser panics can be caught at the
|
||
# Tauri command boundary via panic_guard and turned into errors. Slightly
|
||
# larger binary, but prevents single-file corruption from killing the app.
|
||
panic = "unwind"
|
||
strip = true
|