initial commit

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4a6b498153eccd5407510dd541b7f4816a6a6964
This commit is contained in:
raf 2026-01-30 22:05:46 +03:00
commit 6a73d11c4b
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
124 changed files with 34856 additions and 0 deletions

100
Cargo.toml Normal file
View file

@ -0,0 +1,100 @@
[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"