[package]
name = "samod"
version = "0.6.1"
edition = "2024"
authors = ["Alex Good <alex@patternist.xyz>"]
description = "A rust library for managing automerge documents, compatible with the js automerge-repo library"
license = "MIT"
repository = "https://github.com/alexjg/samod"
[features]
tokio = ["dep:tokio", "dep:tokio-util"]
axum = ["dep:axum", "dep:tokio", "dep:tokio-util"]
tungstenite = ["dep:tungstenite", "dep:tokio-tungstenite", "tokio"]
gio = ["dep:gio", "dep:glib"]
threadpool = ["dep:rayon"]
[dependencies]
automerge = { workspace = true }
axum = { version = "0.8.4", optional = true, features = ["ws"] }
bytes = "1.10.1"
chrono = "0.4.41"
futures = "0.3.31"
rand = "0.9.1"
rayon = { version = "1.10.0", optional = true }
samod-core = { path = "../samod-core", version = "0.6.1" }
tokio = { version = "1.46.0", features = ["rt", "time", "fs"], optional = true }
tokio-tungstenite = { version = "0.27.0", optional = true }
tokio-util = { version = "0.7.15", features = [
"codec",
"net",
], optional = true }
tracing = "0.1.41"
tungstenite = { version = "0.27.0", optional = true }
gio = { version = "0.20.12", optional = true }
glib = { version = "0.20.12", optional = true }
async-channel = "2.5.0"
[dev-dependencies]
eyre = "0.6.12"
reqwest = { version = "0.12.22", features = [
"json",
"blocking",
], default-features = false }
tempfile = "3.20.0"
tokio = { version = "1.46.0", features = [
"rt",
"time",
"macros",
"process",
"fs",
] }
tokio-test = { version = "0.4.4" }
tokio-stream = { version = "0.1.17", features = ["io-util"] }
tokio-util = { version = "0.7.15", features = ["codec", "net"] }
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
[[test]]
name = "js_interop"
required-features = ["tokio", "tungstenite", "axum"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
rustc-args = ["--cfg", "docsrs"]