Archive v0.1.0 — 사진/영상 라이브러리 관리 프로그램
Tauri v2 + SolidJS + SQLite + ffmpeg 사이드카로 구현한 크로스플랫폼 사진·영상 관리 앱. 로컬/NAS(SFTP·WebDAV·FTP) 소스, 가상 그리드, 인앱 재생, 태그/이동/삭제/undo, 중복 탐지, 포터블 배포. - archive-db: SQLite 스키마·마이그레이션·단일 writer 스레드 + FTS5 trigram - archive-vfs: VFS 4백엔드(local/sftp/ftp/webdav) + 자격증명(키체인/볼트) - archive-indexer: 스캔·해시·썸네일·중복탐지·태그·파일작업·유지보수 - archive-media: localhost HTTP 미디어 서버(Range) + ffmpeg 스트림 잡 - 프론트: 3-pane UI, justified 가상 그리드, 라이트박스, 중복 검토 패널 Rust 테스트 49개 통과. CI: win x64/arm64 포터블 zip + macOS universal dmg. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
[workspace]
|
||||
members = [
|
||||
"crates/archive-db",
|
||||
"crates/archive-vfs",
|
||||
"crates/archive-indexer",
|
||||
"crates/archive-media",
|
||||
]
|
||||
|
||||
[workspace.dependencies]
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
thiserror = "2"
|
||||
anyhow = "1"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tracing = "0.1"
|
||||
bytes = "1"
|
||||
async-trait = "0.1"
|
||||
crossbeam-channel = "0.5"
|
||||
|
||||
[package]
|
||||
name = "archive"
|
||||
version = "0.1.0"
|
||||
description = "사진/영상 라이브러리 관리 프로그램"
|
||||
edition = "2021"
|
||||
rust-version = "1.80"
|
||||
|
||||
[build-dependencies]
|
||||
tauri-build = { version = "2", features = [] }
|
||||
|
||||
[dependencies]
|
||||
tauri = { version = "2", features = [] }
|
||||
tauri-plugin-shell = "2"
|
||||
tauri-plugin-dialog = "2"
|
||||
tauri-plugin-single-instance = "2"
|
||||
tauri-plugin-window-state = "2"
|
||||
|
||||
archive-db = { path = "crates/archive-db" }
|
||||
archive-vfs = { path = "crates/archive-vfs" }
|
||||
archive-indexer = { path = "crates/archive-indexer" }
|
||||
archive-media = { path = "crates/archive-media" }
|
||||
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
anyhow = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
dirs = "6"
|
||||
rusqlite = { version = "0.40", features = ["bundled"] }
|
||||
notify-debouncer-full = "0.7"
|
||||
crossbeam-channel = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
mime_guess = "2"
|
||||
|
||||
[profile.release]
|
||||
lto = "thin"
|
||||
strip = "symbols"
|
||||
|
||||
# 개발 빌드에서도 의존성(이미지 디코더, 해시, sqlite 등)은 최적화한다.
|
||||
# 자체 크레이트만 디버그 빌드 — 이미지 디코드가 10배 이상 빨라진다.
|
||||
[profile.dev.package."*"]
|
||||
opt-level = 2
|
||||
Reference in New Issue
Block a user