spacedrive/core/Cargo.toml
jake c674b7107a
[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

116 lines
3 KiB
TOML

[package]
name = "sd-core"
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 }
[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 = ["dep:sd-heif"]
[dependencies]
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-heif = { path = "../crates/heif", optional = true }
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",
] }
httpz = { workspace = true }
prisma-client-rust = { workspace = true }
specta = { workspace = true }
tokio = { workspace = true, features = [
"sync",
"rt-multi-thread",
"io-util",
"macros",
"time",
"process",
] }
kamadak-exif = "0.5.5"
base64 = "0.21.2"
serde = { version = "1.0", features = ["derive"] }
chrono = { version = "0.4.25", features = ["serde"] }
serde_json = { workspace = true }
futures = "0.3"
rmp = "^0.8.11"
rmp-serde = "^1.1.1"
rmpv = "^1.0.0"
blake3 = "1.3.3"
hostname = "0.3.1"
uuid = { workspace = true }
sysinfo = "0.28.4"
thiserror = "1.0.40"
include_dir = { version = "0.7.3", features = ["glob"] }
async-trait = "^0.1.68"
image = "0.24.6"
webp = "0.2.2"
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
async-stream = "0.3.5"
once_cell = "1.17.2"
ctor = "0.1.26"
globset = { version = "^0.4.10", features = ["serde1"] }
itertools = "^0.10.5"
enumflags2 = "0.7.7"
http-range = "0.1.5"
mini-moka = "0.10.0"
serde_with = "2.3.3"
dashmap = { version = "5.4.0", 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.24", features = ["derive"] }
strum_macros = "0.24"
regex = "1.8.4"
hex = "0.4.3"
int-enum = "0.5.0"
tokio-stream = "0.1.14"
futures-concurrency = "7.3"
async-channel = "1.9"
tokio-util = "0.7"
slotmap = "1.0.6"
aovec = "1.1.0"
flate2 = "1.0.26"
tar = "0.4.40"
tempfile = "^3.5.0"
[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"