[package]
authors = ["Ditto Engineering Team <engineering@ditto.live>"]
categories = ["database-implementations", "external-ffi-bindings", "database"]
description = "This is a support crate for Ditto: dittolive-ditto is the crate we intend for you to interact with."
documentation = "https://ditto.com/link/docs"
edition = "2021"
homepage = "https://www.ditto.live"
keywords = ["sdk", "distributed", "peer-to-peer", "database", "bluetooth"]
license-file = "LICENSE.md"
name = "dittolive-ditto-base"
publish = true
resolver = "2"
version = "5.0.0-experimental-sdk-cmd-logging.1"  # SDK VERSION
rust-version = "1.76"

[features]
default = []
# Any feature-flag that directly depends on this flag is deemed "unstable" and may change or be
# removed without notice, as well as the APIs behind said flags.
experimental-flag = []
experimental-bus = ["experimental-flag", "experimental-pk", "stabby"]
experimental-pk = ["experimental-flag", "experimental-pk-serde"]
experimental-pk-serde = ["experimental-flag"]
# stabby is currently optional until its wasm support improves.
stabby = ["experimental-flag", "dep:stabby", "safer-ffi/stabby"]

[dependencies]
base64.workspace = true
serde.workspace = true
serde_cbor.workspace = true
serde_json.workspace = true
stabby = { workspace = true, optional = true }
thiserror.workspace = true
tokio = { workspace = true, features = ["sync"] }

[dependencies.safer-ffi]
workspace = true
features = [
    "dyn-traits",
]

[dev-dependencies]
flume.workspace = true
tokio = { workspace = true, features = ["rt"] }
