[package]
name = "armature-collab"
version = "0.1.1"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Real-time collaboration with CRDTs and Operational Transformation for Armature framework"
keywords = ["crdt", "collaboration", "real-time", "ot", "sync"]
categories = ["data-structures", "web-programming"]

[dependencies]
armature-core = { path = "../armature-core", version = "0.2.0" }
armature-log = { path = "../armature-log", version = "0.1.0" }
armature-websocket = { path = "../armature-websocket", version = "0.2.0", optional = true }
tokio = { version = "1.35", features = ["rt-multi-thread", "sync", "time"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
async-trait = "0.1"
thiserror = "2.0"
uuid = { version = "1.8", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
dashmap = "6.0"
parking_lot = "0.12"
bytes = "1.5"

# For text CRDTs
ropey = { version = "1.6", optional = true }

[features]
default = ["text"]
text = ["ropey"]
websocket = ["armature-websocket"]
full = ["text", "websocket"]

[dev-dependencies]
tokio-test = "0.4"
proptest = "1.4"

