[package]
name = "syncular-ssp2"
version = "0.2.0"
edition = "2021"
description = "Syncular v2 SSP2 wire codec, implemented from SPEC.md alone (language-neutrality POC)"
license = "Apache-2.0"
repository = "https://github.com/syncular/syncular"

# The crate publishes as `syncular-ssp2`, but the LIBRARY name stays `ssp2`
# so `use ssp2::...` in every dependent is unchanged. Dependents refer to it
# as `ssp2 = { package = "syncular-ssp2", ... }`.
[lib]
name = "ssp2"

[dependencies]
serde_json = "1"

# §5.11 client-side encryption (E2EE). Behind the `e2ee` feature so lean
# builds skip the crypto crates entirely; the conformance shim enables it.
aes-gcm = { version = "0.10", optional = true }
x25519-dalek = { version = "2", features = ["static_secrets"], optional = true }
hkdf = { version = "0.12", optional = true }
sha2 = { version = "0.10", optional = true }
rand_core = { version = "0.6", features = ["getrandom"], optional = true }

[features]
default = []
e2ee = ["dep:aes-gcm", "dep:x25519-dalek", "dep:hkdf", "dep:sha2", "dep:rand_core"]
