[package] name = "sd-core" version = "0.1.4" description = "Virtual distributed filesystem engine that powers Spacedrive." authors = ["Spacedrive Technology Inc."] rust-version = "1.73.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 = ["sd-images/heif"] ai = ["dep:sd-ai"] [dependencies] # Sub-crates sd-cache = { path = "../crates/cache" } sd-core-sync = { path = "./crates/sync" } # sd-cloud-api = { path = "../crates/cloud-api" } sd-crypto = { path = "../crates/crypto", features = [ "rspc", "specta", "serde", "keymanager", ] } sd-file-path-helper = { path = "../crates/file-path-helper" } sd-ffmpeg = { path = "../crates/ffmpeg", optional = true } sd-file-ext = { path = "../crates/file-ext" } sd-images = { path = "../crates/images", features = [ "rspc", "serde", "specta", ] } sd-media-metadata = { path = "../crates/media-metadata" } sd-p2p = { path = "../crates/p2p", features = ["specta", "serde"] } sd-prisma = { path = "../crates/prisma" } sd-ai = { path = "../crates/ai", optional = true } sd-sync = { path = "../crates/sync" } sd-utils = { path = "../crates/utils" } sd-cloud-api = { version = "0.1.0", path = "../crates/cloud-api" } # Workspace dependencies async-channel = { workspace = true } axum = { workspace = true } base64 = { workspace = true } blake3 = { workspace = true } chrono = { workspace = true, features = ["serde"] } futures = { workspace = true } futures-concurrency = { workspace = true } image = { workspace = true } normpath = { workspace = true, features = ["localization"] } once_cell = { workspace = true } pin-project-lite = { workspace = true } prisma-client-rust = { workspace = true } regex = { workspace = true } reqwest = { workspace = true, features = ["json", "native-tls-vendored"] } rmp-serde = { workspace = true } rspc = { workspace = true, features = [ "uuid", "chrono", "tracing", "alpha", "unstable", ] } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } specta = { workspace = true } strum = { workspace = true, features = ["derive"] } strum_macros = { workspace = true } tempfile = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = [ "sync", "rt-multi-thread", "io-util", "macros", "time", "process", ] } tokio-stream = { workspace = true, features = ["fs"] } tokio-util = { workspace = true, features = ["io"] } tracing = { workspace = true } tracing-appender = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } uuid = { workspace = true, features = ["v4", "serde"] } webp = { workspace = true } # Specific Core dependencies async-recursion = "1.0.5" async-stream = "0.3.5" async-trait = "^0.1.74" bytes = "1.5.0" ctor = "0.2.5" directories = "5.0.1" flate2 = "1.0.28" globset = { version = "^0.4.13", features = ["serde1"] } hostname = "0.3.1" http-body = "0.4.5" http-range = "0.1.5" int-enum = "0.5.0" itertools = "0.12.0" mini-moka = "0.10.2" notify = { version = "=5.2.0", default-features = false, features = [ "macos_fsevent", ], optional = true } rmpv = "^1.0.1" serde-hashkey = "0.4.5" serde_repr = "0.1" serde_with = "3.4.0" slotmap = "1.0.6" static_assertions = "1.1.0" sysinfo = "0.29.10" tar = "0.4.40" # Override features of transitive dependencies [dependencies.openssl] version = "=0.10.61" features = ["vendored"] [dependencies.openssl-sys] version = "=0.9.97" features = ["vendored"] # Platform-specific dependencies [target.'cfg(target_os = "macos")'.dependencies] plist = "1" [dev-dependencies] tracing-test = "^0.2.4" aovec = "1.1.0"