[package]
name = "svn"
version = "0.1.7"
edition = "2024"
rust-version = "1.94.1"
license = "MIT"
description = "Async client for Subversion's svn:// (ra_svn) protocol."
readme = "README.md"
documentation = "https://docs.rs/svn"
repository = "https://github.com/lvillis/svn-rs"
homepage = "https://github.com/lvillis/svn-rs"
keywords = ["svn", "subversion"]
categories = ["network-programming"]
include = [
  "Cargo.toml",
  "README.md",
  "README.zh-CN.md",
  "LICENSE",
  "CHANGELOG.md",
  "src/**",
  "benches/**",
  "examples/**",
  "tests/**",
]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = []
serde = ["dep:serde"]
cyrus-sasl = ["dep:base64", "dep:libloading"]
ssh = ["dep:russh"]

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

[lints.clippy]
dbg_macro = "deny"
expect_used = "deny"
panic = "deny"
todo = "deny"
unimplemented = "deny"
unwrap_used = "deny"

[lints.rustdoc]
broken_intra_doc_links = "deny"

[dependencies]
base64 = { version = "0.22.1", default-features = false, features = ["alloc"], optional = true }
hex = { version = "0.4.3", default-features = false, features = ["alloc"] }
hmac = { version = "0.13.0", default-features = false }
flate2 = { version = "1.1.9", default-features = false, features = ["rust_backend"] }
libloading = { version = "0.9.0", default-features = false, optional = true }
lz4_flex = { version = "0.13.0", default-features = false, features = ["std"] }
md-5 = { version = "0.11.0", default-features = false }
russh = { version = "0.58.1", default-features = false, features = ["ring", "rsa"], optional = true }
serde = { version = "1.0.228", default-features = false, features = ["derive", "std"], optional = true }
thiserror = { version = "2.0.18", default-features = false, features = ["std"] }
tokio = { version = "1.50.0", default-features = false, features = ["fs", "io-util", "net", "rt", "sync", "time"] }
tracing = { version = "0.1.44", default-features = false, features = ["std"] }
similar = { version = "2.7.0", default-features = false, features = ["text"] }

[dev-dependencies]
criterion = "0.8.2"
proptest = "1.11.0"
tempfile = "3.27.0"

[[bench]]
name = "bench"
harness = false

[package.metadata.release]
tag-prefix = ""
tag-name = "{{prefix}}{{version}}"
pre-release-commit-message = "chore: release {{crate_name}} version {{version}}"
tag-message = "chore: release {{crate_name}} version {{version}}"
pre-release-hook = ["git", "cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]
