Files

81 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 = "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