spacedrive/core/Cargo.toml

120 lines
3.1 KiB
TOML
Raw Normal View History

2021-12-24 09:13:21 +00:00
[package]
name = "sd-core"
2021-12-24 09:13:21 +00:00
version = "0.1.0"
description = "Virtual distributed filesystem engine that powers Spacedrive."
authors = ["Spacedrive Technology Inc."]
rust-version = "1.70.0"
license = { workspace = true }
repository = { workspace = true }
edition = { workspace = true }
2021-12-24 09:13:21 +00:00
[features]
default = []
# This feature allows features to be disabled when the Core is running on mobile.
mobile = []
# This feature controls whether the Spacedrive Core contains functionality which requires FFmpeg.
ffmpeg = ["dep:sd-ffmpeg"]
location-watcher = ["dep:notify"]
heif = ["sd-images/heif"]
2021-12-24 09:13:21 +00:00
[dependencies]
[ENG-288, ENG-601] Media data (image) extraction, thumbnail orientation fix (#1099) * basic layout * lock * add codec to image * very messy wip * rm that * lock and toml * working perfect exif extraction * formatting * migration and formatting * mostly working * fix * set date created properly * fix tsc * working media data creation * fix bad main merge? sorry brendan * schema, migrations, bindings * working exif data extraction * why won't it work * update migrations * fix bad merge * final cleanup * cleanup migrations * remove test (that was purely used for testing my code) * working media data pulling, correct thumbnail orientation * slightly optimise thumbnail rotation * rename location to prevent specta clashes * further improvements (location parsing is still broken) * fix coordinate parsing i think * rspc add some todos regarding final cleanup * further thoughts * major upgrades * Some improved handling of errors and async calls * accordion component * heavily wip flash refactor * fix builds all because of a (terrible) merge/move * annoying missing newline * i really hate exif * remove dead code * further flash progress :D * docs(media-data): clarification * minor cleanup * cleanup and some async removal * fix location parsing * remove async (will do proper impl for async eventually) and major cleanup * big W * clippy and `FlashMode::Unknown` instead of `Invalid` * add `NIKON` gps ref support * comments about gps refs * commit the submodule -_- * major cleanup & composite image support * remove old test image * major cleanup and easier to use API * remove old consts * move `ExifReader` to dedicated module * Media Data Extractor job and shallow job * Extracting media data on watcher * report no exif data on file gracefully * cleanup errors and doctests * Merging thumbnailer and media data extractor * Job name and some strings in UI * remove reliance on `sd-prisma` within the media data crate * rename query to be more specific * custom serializer for `MediaTime` * tweak to format utc -> naive correctly * generate migrations * comment out duration in mobile * delete test-assets folder * all optional fields * fix migrations again * make requested name changes * make further requested changes * remove erroneous files from another wip branch * updates procedures * use strings where appropriate * regen pnpm-lock * add base layouts for video and audio media data * use appropriate data types in schema and add audio media data framework * make requested changes * general cleanup and renaming of enum * cleanup media data api * rename media metadata type * finishing touches --------- Co-authored-by: Ericson Soares <ericson.ds999@gmail.com> Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com> Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com> Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me> Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com> Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-08-29 17:02:55 +00:00
sd-media-metadata = { path = "../crates/media-metadata" }
sd-prisma = { path = "../crates/prisma" }
sd-ffmpeg = { path = "../crates/ffmpeg", optional = true }
sd-crypto = { path = "../crates/crypto", features = [
"rspc",
"specta",
"serde",
"keymanager",
] }
sd-images = { path = "../crates/images" }
sd-file-ext = { path = "../crates/file-ext" }
sd-sync = { path = "../crates/sync" }
sd-p2p = { path = "../crates/p2p", features = ["specta", "serde"] }
sd-utils = { path = "../crates/utils" }
sd-core-sync = { path = "./crates/sync" }
rspc = { workspace = true, features = [
"uuid",
"chrono",
"tracing",
"alpha",
"unstable",
] }
prisma-client-rust = { workspace = true }
specta = { workspace = true }
tokio = { workspace = true, features = [
"sync",
"rt-multi-thread",
"io-util",
"macros",
"time",
"process",
] }
[ENG-288, ENG-601] Media data (image) extraction, thumbnail orientation fix (#1099) * basic layout * lock * add codec to image * very messy wip * rm that * lock and toml * working perfect exif extraction * formatting * migration and formatting * mostly working * fix * set date created properly * fix tsc * working media data creation * fix bad main merge? sorry brendan * schema, migrations, bindings * working exif data extraction * why won't it work * update migrations * fix bad merge * final cleanup * cleanup migrations * remove test (that was purely used for testing my code) * working media data pulling, correct thumbnail orientation * slightly optimise thumbnail rotation * rename location to prevent specta clashes * further improvements (location parsing is still broken) * fix coordinate parsing i think * rspc add some todos regarding final cleanup * further thoughts * major upgrades * Some improved handling of errors and async calls * accordion component * heavily wip flash refactor * fix builds all because of a (terrible) merge/move * annoying missing newline * i really hate exif * remove dead code * further flash progress :D * docs(media-data): clarification * minor cleanup * cleanup and some async removal * fix location parsing * remove async (will do proper impl for async eventually) and major cleanup * big W * clippy and `FlashMode::Unknown` instead of `Invalid` * add `NIKON` gps ref support * comments about gps refs * commit the submodule -_- * major cleanup & composite image support * remove old test image * major cleanup and easier to use API * remove old consts * move `ExifReader` to dedicated module * Media Data Extractor job and shallow job * Extracting media data on watcher * report no exif data on file gracefully * cleanup errors and doctests * Merging thumbnailer and media data extractor * Job name and some strings in UI * remove reliance on `sd-prisma` within the media data crate * rename query to be more specific * custom serializer for `MediaTime` * tweak to format utc -> naive correctly * generate migrations * comment out duration in mobile * delete test-assets folder * all optional fields * fix migrations again * make requested name changes * make further requested changes * remove erroneous files from another wip branch * updates procedures * use strings where appropriate * regen pnpm-lock * add base layouts for video and audio media data * use appropriate data types in schema and add audio media data framework * make requested changes * general cleanup and renaming of enum * cleanup media data api * rename media metadata type * finishing touches --------- Co-authored-by: Ericson Soares <ericson.ds999@gmail.com> Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com> Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com> Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me> Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com> Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-08-29 17:02:55 +00:00
kamadak-exif = "0.5.5"
base64 = "0.21.4"
2021-12-24 12:24:12 +00:00
serde = { version = "1.0", features = ["derive"] }
chrono = { version = "0.4.30", features = ["serde"] }
serde_json = { workspace = true }
2021-12-24 12:24:12 +00:00
futures = "0.3"
rmp = "^0.8.12"
rmp-serde = "^1.1.2"
rmpv = "^1.0.1"
blake3 = "1.4.1"
hostname = "0.3.1"
uuid = { workspace = true }
sysinfo = "0.29.10"
thiserror = "1.0.48"
include_dir = { version = "0.7.3", features = ["glob"] }
async-trait = "^0.1.73"
image = "0.24.7"
[ENG-1054] libheif for Linux (plus fixes) + Webp update (#1405) * Move postinstall script to a preprep script - Fix libheif crate failing to build with our libheif - Rework CI due to postinstall to preprep changes * Linux heif build script + Update webp * Fix ctrl+c/ctrl+v bug * Improve libheif linux script - Add support for linux aarch64 - Add CI workflow to build libheif for linux - Some other misc fixes * Fix libheif CI requires sudo * Fix wrong path for libheif build.rs override in Windows * Fix wrong path manipulations in libheif build script * 🤦 * Use ubuntu-latest in libheif action - Specify glib version in target triple to support old distros - Fix libheif artifact publishing * Fix artifact upload path again * Add musl support for libheif - Remove unused files from libheif artifact - Add setup logic for libheif in postinstall script * Build libheif for linux as a shared lib * Fix meson not building the correct arch - Add logic to get git branch from githubs CI env vars * libheif finnaly works on linux - Make spacedrive binary rpath point to where appimage and deb expects our libs to be - Add some logic to tauri.js to convince tauri to bundle our shared libs - Work-around appimage bundling step breaking sometimes - Add logic to handle sigint in tauri.js to ensure we clean up after ourselves - Rename postinstall.mjs to setup.mjs - Add logic to setup.mjs to point our dev build to our shared libs in linux * Fix windows dekstop dev - Rename setup.mjs to preprep.mjs * test cache-factory * Fix preprep script not parsing the cross compilation target triple and always using the host info to download dependencies - Fix action env vars not being correctly passed - Remove possibility to pass multiple targests to rust action * Don't compile mobile crates on desktop targets * Remove cache-factory pull_request trigger * remove patched tauri cli * Use git plumbing command to get remote branch name - Fallback to reading .git/HEAD if remote name was not retrieved * fix type --------- Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-10-03 17:31:33 +00:00
webp = "0.2.6"
tracing = { workspace = true }
[ENG-288, ENG-601] Media data (image) extraction, thumbnail orientation fix (#1099) * basic layout * lock * add codec to image * very messy wip * rm that * lock and toml * working perfect exif extraction * formatting * migration and formatting * mostly working * fix * set date created properly * fix tsc * working media data creation * fix bad main merge? sorry brendan * schema, migrations, bindings * working exif data extraction * why won't it work * update migrations * fix bad merge * final cleanup * cleanup migrations * remove test (that was purely used for testing my code) * working media data pulling, correct thumbnail orientation * slightly optimise thumbnail rotation * rename location to prevent specta clashes * further improvements (location parsing is still broken) * fix coordinate parsing i think * rspc add some todos regarding final cleanup * further thoughts * major upgrades * Some improved handling of errors and async calls * accordion component * heavily wip flash refactor * fix builds all because of a (terrible) merge/move * annoying missing newline * i really hate exif * remove dead code * further flash progress :D * docs(media-data): clarification * minor cleanup * cleanup and some async removal * fix location parsing * remove async (will do proper impl for async eventually) and major cleanup * big W * clippy and `FlashMode::Unknown` instead of `Invalid` * add `NIKON` gps ref support * comments about gps refs * commit the submodule -_- * major cleanup & composite image support * remove old test image * major cleanup and easier to use API * remove old consts * move `ExifReader` to dedicated module * Media Data Extractor job and shallow job * Extracting media data on watcher * report no exif data on file gracefully * cleanup errors and doctests * Merging thumbnailer and media data extractor * Job name and some strings in UI * remove reliance on `sd-prisma` within the media data crate * rename query to be more specific * custom serializer for `MediaTime` * tweak to format utc -> naive correctly * generate migrations * comment out duration in mobile * delete test-assets folder * all optional fields * fix migrations again * make requested name changes * make further requested changes * remove erroneous files from another wip branch * updates procedures * use strings where appropriate * regen pnpm-lock * add base layouts for video and audio media data * use appropriate data types in schema and add audio media data framework * make requested changes * general cleanup and renaming of enum * cleanup media data api * rename media metadata type * finishing touches --------- Co-authored-by: Ericson Soares <ericson.ds999@gmail.com> Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com> Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com> Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me> Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com> Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-08-29 17:02:55 +00:00
tracing-subscriber = { workspace = true, features = ["env-filter"] }
async-stream = "0.3.5"
once_cell = "1.18.0"
ctor = "0.2.4"
globset = { version = "^0.4.13", features = ["serde1"] }
itertools = "^0.11.0"
enumflags2 = "0.7.7"
http-range = "0.1.5"
mini-moka = "0.10.2"
serde_with = "3.3.0"
dashmap = { version = "5.5.3", features = ["serde"] }
notify = { version = "=5.2.0", default-features = false, features = [
"macos_fsevent",
], optional = true }
static_assertions = "1.1.0"
serde-hashkey = "0.4.5"
normpath = { version = "1.1.1", features = ["localization"] }
tracing-appender = { workspace = true }
strum = { version = "0.25", features = ["derive"] }
strum_macros = "0.25"
regex = "1.9.5"
hex = "0.4.3"
int-enum = "0.5.0"
tokio-stream = "0.1.14"
futures-concurrency = "7.4.3"
async-channel = "1.9"
tokio-util = { version = "0.7.8", features = ["io"] }
slotmap = "1.0.6"
aovec = "1.1.0"
flate2 = "1.0.27"
tar = "0.4.40"
tempfile = "^3.8.0"
axum = "0.6.20"
http-body = "0.4.5"
pin-project-lite = "0.2.13"
bytes = "1.5.0"
reqwest = { version = "0.11.20", features = ["json"] }
[target.'cfg(target_os = "macos")'.dependencies]
plist = "1"
[target.'cfg(windows)'.dependencies.winapi-util]
version = "0.1.5"
[dev-dependencies]
tracing-test = "^0.2.4"