bothy 0.4.0

Serverless, local-first sync engine that uses the user's own cloud storage (Google Drive) as the transport. Early development.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.88"
name = "bothy"
version = "0.4.0"
authors = ["The Bothy Contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Serverless, local-first sync engine that uses the user's own cloud storage (Google Drive) as the transport. Early development."
homepage = "https://github.com/bothy-sync/bothy"
documentation = "https://docs.rs/bothy"
readme = "README.md"
keywords = [
    "sync",
    "local-first",
    "offline",
    "google-drive",
    "hlc",
]
categories = [
    "database",
    "network-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/bothy-sync/bothy"

[features]
blocking = ["tokio/rt-multi-thread"]
crypto = [
    "dep:argon2",
    "dep:chacha20poly1305",
    "dep:zeroize",
]
default = [
    "blocking",
    "crypto",
    "drive",
    "p2p",
]
drive = [
    "dep:reqwest",
    "dep:rustls",
    "dep:sha2",
    "dep:webpki-roots",
]
p2p = [
    "dep:str0m",
    "dep:str0m-aws-lc-rs",
    "tokio/net",
]
test-util = []

[lib]
name = "bothy"
path = "src/lib.rs"

[[test]]
name = "cbor_differential"
path = "tests/cbor_differential.rs"

[[test]]
name = "drive_contract"
path = "tests/drive_contract.rs"

[[test]]
name = "encryption"
path = "tests/encryption.rs"

[[test]]
name = "p2p"
path = "tests/p2p.rs"

[[test]]
name = "parsers_never_panic"
path = "tests/parsers_never_panic.rs"

[[test]]
name = "simulation"
path = "tests/simulation.rs"

[[test]]
name = "snapshots"
path = "tests/snapshots.rs"

[[test]]
name = "two_devices"
path = "tests/two_devices.rs"

[dependencies.argon2]
version = "0.6"
optional = true

[dependencies.async-trait]
version = "0.1"

[dependencies.base64]
version = "0.23"

[dependencies.blake3]
version = "1.8"

[dependencies.chacha20poly1305]
version = "0.11"
optional = true

[dependencies.fs4]
version = "1.1"

[dependencies.getrandom]
version = "0.4"

[dependencies.reqwest]
version = "0.13"
features = ["rustls-no-provider"]
optional = true
default-features = false

[dependencies.rusqlite]
version = "0.40"
features = ["bundled"]

[dependencies.rustls]
version = "0.23"
features = [
    "ring",
    "std",
    "tls12",
]
optional = true
default-features = false

[dependencies.serde_json]
version = "1"

[dependencies.sha2]
version = "0.11"
optional = true

[dependencies.str0m]
version = "0.24.1"
features = ["aws-lc-rs"]
optional = true
default-features = false

[dependencies.str0m-aws-lc-rs]
version = "0.6"
optional = true

[dependencies.tokio]
version = "1.54"
features = [
    "macros",
    "rt",
    "sync",
    "time",
]

[dependencies.zeroize]
version = "1.9"
optional = true

[dependencies.zstd]
version = "0.14"

[dev-dependencies.ciborium]
version = "0.2"

[dev-dependencies.proptest]
version = "1.12"

[dev-dependencies.tempfile]
version = "3"

[dev-dependencies.tokio]
version = "1.54"
features = [
    "macros",
    "rt-multi-thread",
    "test-util",
]

[dev-dependencies.wiremock]
version = "0.6"

[target.'cfg(target_os = "android")'.dependencies.webpki-roots]
version = "1.0"
optional = true

[lints.clippy.all]
level = "warn"
priority = -1

[lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"