[package]
edition = "2024"
rust-version = "1.91"
name = "diaryx_sync"
version = "1.4.3"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Sync engine for Diaryx - CRDT types, sync protocol, siphonophore hooks, and local server"
homepage = "https://github.com/diaryx-org/diaryx"
readme = "README.md"
license-file = "LICENSE.md"
repository = "https://github.com/diaryx-org/diaryx"
resolver = "2"
[features]
browser-js = ["diaryx_core/browser-js"]
default = []
doc-server = ["protocol"]
git = [
"sqlite",
"dep:git2",
]
native-sync = [
"dep:tokio",
"dep:tokio-tungstenite",
"dep:url",
"dep:futures-util",
]
protocol = []
server = [
"protocol",
"doc-server",
"sqlite",
"dep:siphonophore",
"dep:kameo",
"dep:axum",
"dep:tokio",
"dep:tower-http",
"dep:rand",
"dep:futures",
]
sqlite = [
"dep:rusqlite",
"diaryx_core/database",
]
typescript = [
"dep:ts-rs",
"diaryx_core/typescript",
]
[lib]
name = "diaryx_sync"
path = "src/lib.rs"
[[test]]
name = "crdt_fs_trait_parity"
path = "tests/crdt_fs_trait_parity.rs"
[[test]]
name = "crdt_sync_parity"
path = "tests/crdt_sync_parity.rs"
[[test]]
name = "reconnect_body_state"
path = "tests/reconnect_body_state.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
features = ["ws"]
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.chrono]
version = "0.4"
features = [
"serde",
"std",
"clock",
]
default-features = false
[dependencies.diaryx_core]
version = "1.3.1"
features = ["uuid"]
default-features = false
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.futures-util]
version = "0.3"
optional = true
[dependencies.git2]
version = "0.19"
optional = true
default-features = false
[dependencies.indexmap]
version = "2.0"
features = ["serde"]
[dependencies.kameo]
version = "0.19"
optional = true
[dependencies.log]
version = "0.4"
[dependencies.rand]
version = "0.8"
optional = true
[dependencies.rusqlite]
version = "0.34"
features = ["bundled"]
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.siphonophore]
version = "0.1.0"
optional = true
package = "diaryx-siphonophore"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1"
features = ["full"]
optional = true
[dependencies.tokio-tungstenite]
version = "0.26"
features = ["rustls-tls-webpki-roots"]
optional = true
[dependencies.tower-http]
version = "0.6"
features = ["cors"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.ts-rs]
version = "10"
features = [
"serde-json-impl",
"indexmap-impl",
"no-serde-warnings",
]
optional = true
[dependencies.url]
version = "2"
optional = true
[dependencies.yrs]
version = "0.25"
features = ["sync"]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.futures-lite]
version = "2"