[lib] path = "src/lib.rs" [package] name = "peermerge" version = "0.0.3" description = "Manage JSON-like documents with multiple writers, without a central authority, using a P2P protocol" documentation = "https://docs.rs/peermerge" repository = "https://codeberg.org/convivialsoftware/peermerge" readme = "README.md" keywords = ["p2p", "crdt"] categories = [ "asynchronous", "data-structures", "wasm", ] edition = "2021" license = "AGPL-3.0-only" authors = ["Timo Tiuraniemi "] [dependencies] automerge = { version = "0.5" } hypercore-protocol = { version = "0.4", default-features = false, features = ["cache", "sparse"], optional = true } random-access-storage = "5" random-access-memory = "3" thiserror = "1" data-encoding = "2" futures = "0.3" wasm-bindgen-futures = { version = "0.4", optional = true } derivative = "2" dashmap = "5" tracing = "0.1" chacha20poly1305 = "0.10" compact-encoding = "1" uuid = "1" derive_builder = "0.12" bytes = { version = "1", optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] random-access-disk = { version = "3", default-features = false, features = ["sparse"] } tokio = { version = "1", features = ["rt", "sync"], optional = true } async-std = { version = "1", features = ["attributes", "unstable"], optional = true } [dev-dependencies] sluice = "0.5.5" test-log = { version = "0.2.11", default-features = false, features = ["trace"] } tracing-subscriber = { version = "0.3.16", features = ["env-filter", "fmt"] } criterion = { version = "0.4", features = ["async_std", "async_tokio"] } pprof = { version = "0.11.0", features = ["flamegraph", "criterion"] } tokio = { version = "1.27.0", features = ["macros", "rt-multi-thread"] } tempfile = "3.1.0" anyhow = "1.0.28" rand = "0.8" [features] default = ["hypercore-feed", "tokio-runtime", "wasm-bindgen"] hypercore-feed = ["hypercore-protocol"] # support for p2panda in a backwards-compatible way wasm-bindgen = [ "wasm-bindgen-futures", "hypercore-protocol/wasm-bindgen", "automerge/wasm", "uuid/js" ] log = ["tracing/log"] async-std-runtime = ["async-std", "hypercore-protocol/async-std", "random-access-disk/async-std"] tokio-runtime = ["tokio", "hypercore-protocol/tokio", "random-access-disk/tokio"] channel-writer = ["bytes"] [[bench]] name = "three_peers_separate" harness = false