[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"] } # 릴리스 GUI 빌드에는 콘솔이 없다 — 파일로 남기지 않으면 진단이 통째로 사라진다. tracing-appender = "0.2" 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배 이상 빨라진다. # # 다만 **디버그 정보는 넣지 않는다.** rustls나 tokio 안으로 들어가 단계 실행할 일이 없는데, # 의존성 200여 개의 PDB를 만드는 데 빌드 시간과 디스크가 크게 든다(target이 수십 GB로 불어난 # 주된 이유였다). 백트레이스에 의존성 프레임의 줄번호가 안 나오는 것이 유일한 대가다. [profile.dev.package."*"] opt-level = 2 debug = false # 자체 크레이트는 줄번호까지만. 패닉 위치를 아는 데는 충분하고, # 전체 타입 정보를 담은 PDB보다 훨씬 작고 빠르다. [profile.dev] debug = "line-tables-only"