Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I81b701d5c1b3cd6855af5c36c7b460e56a6a6964
137 lines
3.2 KiB
TOML
137 lines
3.2 KiB
TOML
[workspace]
|
|
members = ["crates/*"]
|
|
resolver = "3"
|
|
|
|
[workspace.package]
|
|
edition = "2024" # keep in sync with .rustfmt.toml
|
|
version = "0.2.0-dev"
|
|
license = "EUPL-1.2"
|
|
readme = true
|
|
rust-version = "1.95.0" # follows nightly Rust
|
|
|
|
[workspace.dependencies]
|
|
# Crate components for Pinakes.
|
|
pinakes-core = { path = "./crates/pinakes-core" }
|
|
pinakes-server = { path = "./crates/pinakes-server" }
|
|
pinakes-plugin-api = { path = "./crates/pinakes-plugin-api" }
|
|
pinakes-ui = { path = "./crates/pinakes-ui" }
|
|
pinakes-tui = { path = "./crates/pinakes-tui" }
|
|
|
|
# Async runtime
|
|
tokio = { version = "1.49.0", features = ["full"] }
|
|
tokio-util = { version = "0.7.18", features = ["rt"] }
|
|
|
|
# Serialization
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_json = "1.0.149"
|
|
toml = "0.9.11"
|
|
|
|
# CLI argument parsing
|
|
clap = { version = "4.5.57", features = ["derive", "env"] }
|
|
|
|
# Date/time
|
|
chrono = { version = "0.4.43", features = ["serde"] }
|
|
|
|
# IDs
|
|
uuid = { version = "1.20.0", features = ["v7", "serde"] }
|
|
|
|
# Error handling
|
|
thiserror = "2.0.18"
|
|
anyhow = "1.0.100"
|
|
|
|
# Logging
|
|
tracing = "0.1.44"
|
|
tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json"] }
|
|
|
|
# Hashing
|
|
blake3 = "1.8.3"
|
|
|
|
# Metadata extraction
|
|
lofty = "0.23.1"
|
|
lopdf = "0.39.0"
|
|
epub = "2.1.5"
|
|
matroska = "0.30.0"
|
|
gray_matter = "0.3.2"
|
|
kamadak-exif = "0.6.1"
|
|
|
|
# Database - SQLite
|
|
rusqlite = { version = "0.37", features = ["bundled", "column_decltype"] }
|
|
|
|
# Database - PostgreSQL
|
|
tokio-postgres = { version = "0.7.16", features = [
|
|
"with-uuid-1",
|
|
"with-chrono-0_4",
|
|
"with-serde_json-1",
|
|
] }
|
|
deadpool-postgres = "0.14.1"
|
|
postgres-types = { version = "0.2.12", features = ["derive"] }
|
|
postgres-native-tls = "0.5.2"
|
|
native-tls = "0.2.14"
|
|
|
|
# Migrations
|
|
refinery = { version = "0.9.0", features = ["rusqlite", "tokio-postgres"] }
|
|
|
|
# Filesystem
|
|
walkdir = "2.5.0"
|
|
notify = { version = "8.2.0", features = ["macos_fsevent"] }
|
|
|
|
# Search parser
|
|
winnow = "0.7.14"
|
|
|
|
# HTTP server
|
|
axum = { version = "0.8.8", features = ["macros", "multipart"] }
|
|
axum-server = { version = "0.8.0" }
|
|
tower = "0.5.3"
|
|
tower-http = { version = "0.6.8", features = ["cors", "trace", "set-header"] }
|
|
governor = "0.10.4"
|
|
tower_governor = "0.8.0"
|
|
|
|
# HTTP client
|
|
reqwest = { version = "0.13.1", features = ["json", "query", "blocking"] }
|
|
|
|
# TUI
|
|
ratatui = "0.30.0"
|
|
crossterm = "0.29.0"
|
|
|
|
# Desktop/Web UI
|
|
dioxus = { version = "0.7.3", features = ["desktop", "router"] }
|
|
|
|
# Async trait (dyn-compatible async methods)
|
|
async-trait = "0.1.89"
|
|
|
|
# Async utilities
|
|
futures = "0.3.31"
|
|
|
|
# Image processing (thumbnails)
|
|
image = { version = "0.25.9", default-features = false, features = [
|
|
"jpeg",
|
|
"png",
|
|
"webp",
|
|
"gif",
|
|
"tiff",
|
|
"bmp",
|
|
] }
|
|
|
|
# Markdown rendering
|
|
pulldown-cmark = "0.13.0"
|
|
ammonia = "4.1.2"
|
|
|
|
# Password hashing
|
|
argon2 = { version = "0.5.3", features = ["std"] }
|
|
|
|
# Misc
|
|
mime_guess = "2.0.5"
|
|
regex = "1.12.3"
|
|
dioxus-free-icons = { version = "0.10.0", features = ["font-awesome-solid"] }
|
|
rfd = "0.17.2"
|
|
gloo-timers = { version = "0.3.0", features = ["futures"] }
|
|
rand = "0.10.0"
|
|
moka = { version = "0.12.13", features = ["future"] }
|
|
urlencoding = "2.1.3"
|
|
image_hasher = "3.1.0"
|
|
percent-encoding = "2.3.2"
|
|
http = "1.4.0"
|
|
|
|
# WASM runtime for plugins
|
|
wasmtime = { version = "41.0.3", features = ["component-model"] }
|
|
wit-bindgen = "0.52.0"
|