[package]
name = "bibtex-parser"
version = "0.2.2"
edition = "2021"
rust-version = "1.75"
authors = ["Ayan Das <bvits@riseup.net>"]
description = "BibTeX parser for Rust"
documentation = "https://docs.rs/bibtex-parser"
repository = "https://github.com/b-vitamins/bibtex-parser"
homepage = "https://github.com/b-vitamins/bibtex-parser"
readme = "README.md"
keywords = ["bibtex", "parser", "latex", "bibliography", "citation"]
categories = ["parser-implementations", "text-processing"]
license = "MIT OR Apache-2.0"
include = [
    "/Cargo.toml",
    "/README.md",
    "/LICENSE",
    "/CHANGELOG.md",
    "/PYTHON.md",
    "/RELEASE_CHECKLIST.md",
    "/src/**",
    "/examples/**",
    "/benches/**",
    "/tests/**",
    "/python/**",
    "/pyproject.toml",
]

[lib]
crate-type = ["rlib", "cdylib"]

[features]
default = []
# Enable LaTeX to Unicode conversion
latex_to_unicode = ["dep:phf"]
# Enable multi-file parallel parsing
parallel = ["dep:rayon"]
# Enable the PyO3 module used by the Python package.
python = ["dep:pyo3"]
# Build an ABI-stable CPython extension module for maturin.
python-extension = ["python", "pyo3/abi3-py38", "pyo3/extension-module"]
# Enable comparison with other parsers in benchmarks
compare_parsers = []


[dependencies]
winnow = "0.5"
thiserror = "1.0"
memchr = "2.7"
ahash = "0.8"
rayon = { version = "1.8", optional = true }
phf = { version = "0.11", features = ["macros"], optional = true }
pyo3 = { version = "0.27.2", optional = true }

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
pretty_assertions = "1.4"
insta = { version = "1.34", features = ["yaml"] }
proptest = "1.4"
rand = "0.8"
libc = "0.2"
nom-bibtex = "0.6"
serde_bibtex = { version = "0.7", features = ["entry"] }
biblatex = "0.11"
serde = { version = "1.0", features = ["derive"] }
tempfile = "3"

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

[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1

[profile.bench]
inherits = "release"
debug = false
strip = false
opt-level = 3
lto = "fat"
codegen-units = 1

[package.metadata.docs.rs]
all-features = true
