[package]
name = "bibsync"
version = "0.3.4"
edition = "2024"
rust-version = "1.85"
authors = ["Isaac C. F. Wong"]
description = "A Rust package to automatically resolve, synchronize, and validate LaTeX citations across BibTeX databases"
readme = "README.md"
license = "BSD-3-Clause"
repository = "https://github.com/isaac-cf-wong/bibsync"
homepage = "https://github.com/isaac-cf-wong/bibsync"
documentation = "https://isaac-cf-wong.github.io/bibsync"
keywords = ["bibtex", "latex", "arxiv", "ads", "inspirehep"]
categories = ["command-line-utilities", "development-tools"]
exclude = ["/.github", "/docs/template_documentation"]

[dependencies]
clap = { version = "4.6.1", features = ["derive"] }
pyo3 = { version = "0.28.3", optional = true, features = ["abi3-py312"] }
regex = "1.12.3"
reqwest = { version = "0.13.4", default-features = false, features = [
  "blocking",
  "json",
  "query",
  "rustls",
] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.150"
thiserror = "2.0.18"

[features]
python = ["dep:pyo3"]

[dev-dependencies]
assert_cmd = "=2.2.2"
divan = "=0.1.21"
predicates = "=3.1.4"
tempfile = "=3.27.0"

[lib]
name = "bibsync"
path = "src/lib.rs"
crate-type = ["rlib", "cdylib"]

[[bin]]
name = "bibsync"
path = "src/main.rs"

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

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

[lints.clippy]
all = "warn"
pedantic = "warn"
unwrap_used = "warn"
