[workspace]
members = [".", "src-python"]
resolver = "2"
[package]
name = "mrrc"
version = "0.7.4"
edition = "2021"
authors = ["MARC Rust Community"]
description = "A Rust library for reading, writing, and manipulating MARC bibliographic records in ISO 2709 binary format"
license = "MIT"
repository = "https://github.com/dchud/mrrc"
homepage = "https://github.com/dchud/mrrc"
documentation = "https://docs.rs/mrrc"
readme = "README.md"
rust-version = "1.71"
keywords = ["marc", "bibliographic", "library", "metadata"]
categories = ["encoding", "parser-implementations"]
[features]
default = []
[dependencies]
bytes = "1.11.1"
nom = "8.0"
lazy_static = "1.4"
memchr = "2.7"
encoding_rs = "0.8"
unicode-normalization = "0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
quick-xml = { version = "0.39", features = ["serialize"] }
indexmap = { version = "2.2", features = ["serde"] }
anyhow = "1.0"
thiserror = "2.0"
regex = "1.10"
csv = "1.3"
flate2 = "1.0"
smallvec = { version = "1.11", features = ["union", "serde"] }
rayon = "1.7"
crossbeam-channel = "0.5"
oxrdfio = "0.2"
oxrdf = "0.3"
[dev-dependencies]
proptest = "1.0"
criterion = { version = "4.3.0", package = "codspeed-criterion-compat", features = ["html_reports"] }
rayon = "1.7"
tempfile = "3.8"
smallvec = { version = "1.11", features = ["union", "serde"] }
[lints.rust]
unsafe_code = "deny"
missing_docs = "warn"
missing_debug_implementations = "warn"
[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
cognitive_complexity = "warn"
module_name_repetitions = "allow"
similar_names = "allow"
type_complexity = "allow"
[[bench]]
name = "marc_benchmarks"
harness = false
[[bench]]
name = "parallel_benchmarks"
harness = false
[[bench]]
name = "profiling_harness"
harness = false
[[bench]]
name = "detailed_profiling"
harness = false
[[bench]]
name = "rayon_profiling"
harness = false
[[bench]]
name = "rayon_file_io_profiling"
harness = false
[profile.release]
opt-level = 3
[profile.bench]
debug = true