[package]
name = "meridian-client"
version = "0.1.1"
edition = "2024"
description = "Rust client SDK for Meridian — real-time CRDT sync over WebSocket"
license = "MIT"
repository = "https://github.com/Chahine-tech/meridian"
homepage = "https://github.com/Chahine-tech/meridian"
keywords = ["crdt", "realtime", "sync", "websocket", "collaborative"]
categories = ["network-programming", "asynchronous", "data-structures"]

[dependencies]
meridian-core = { version = "0.1.1" }

tokio  = { version = "1", features = ["rt-multi-thread", "sync", "time", "macros"] }
tokio-tungstenite = { version = "0.26", features = ["rustls-tls-native-roots"], optional = true }
futures-util = { version = "0.3", optional = true }

serde       = { version = "1", features = ["derive"] }
serde_json  = "1"
rmp-serde   = "1.3"
serde_bytes = "0.11"

dashmap    = "6"
async-trait = "0.1"
uuid       = { version = "1", features = ["v4"] }
thiserror  = "2"
tracing    = "0.1"
rand       = "0.8"

[features]
default = ["ws"]
ws = ["dep:tokio-tungstenite", "dep:futures-util"]

[dev-dependencies]
tokio-test          = "0.4"
tracing-subscriber  = { version = "0.3", features = ["env-filter"] }
