pinakes/Cargo.toml
NotAShelf 06c1898040
chore: format Cargo manifest with Taplo
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If49e784ce4c704538529a41a237d6a7c6a6a6964
2026-01-31 15:20:32 +03:00

111 lines
2.1 KiB
TOML

[workspace]
members = [
"crates/pinakes-core",
"crates/pinakes-server",
"crates/pinakes-tui",
"crates/pinakes-ui",
]
resolver = "3"
[workspace.package]
edition = "2024"
version = "0.1.0"
license = "MIT"
[workspace.dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.9"
# CLI argument parsing
clap = { version = "4", features = ["derive", "env"] }
# Date/time
chrono = { version = "0.4", features = ["serde"] }
# IDs
uuid = { version = "1", features = ["v7", "serde"] }
# Error handling
thiserror = "2"
anyhow = "1"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Hashing
blake3 = "1"
# Metadata extraction
lofty = "0.22"
lopdf = "0.39"
epub = "2"
matroska = "0.30"
gray_matter = "0.3"
kamadak-exif = "0.6"
# Database - SQLite
rusqlite = { version = "0.37", features = ["bundled", "column_decltype"] }
# Database - PostgreSQL
tokio-postgres = { version = "0.7", features = [
"with-uuid-1",
"with-chrono-0_4",
"with-serde_json-1",
] }
deadpool-postgres = "0.14"
postgres-types = { version = "0.2", features = ["derive"] }
# Migrations
refinery = { version = "0.9", features = ["rusqlite", "tokio-postgres"] }
# Filesystem
walkdir = "2"
notify = { version = "8", features = ["macos_fsevent"] }
# Search parser
winnow = "0.7"
# HTTP server
axum = { version = "0.8", features = ["macros"] }
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace"] }
governor = "0.8"
tower_governor = "0.6"
# HTTP client
reqwest = { version = "0.13", features = ["json", "query"] }
# TUI
ratatui = "0.30"
crossterm = "0.29"
# Desktop/Web UI
dioxus = { version = "0.7", features = ["desktop", "router"] }
# Async trait (dyn-compatible async methods)
async-trait = "0.1"
# Image processing (thumbnails)
image = { version = "0.25", default-features = false, features = [
"jpeg",
"png",
"webp",
"gif",
"tiff",
"bmp",
] }
# Markdown rendering
pulldown-cmark = "0.12"
# Password hashing
argon2 = "0.5"
# Misc
mime_guess = "2"