[package]
name = "mzdata"
version = "0.65.0"
edition = "2021"
keywords = ['mass-spectrometry', 'mzml', 'mgf']
categories = ["science", "parser-implementations", "data-structures"]
description = "A library to read mass spectrometry data formats and a data model for mass spectra"
license = "Apache-2.0"
repository = "https://github.com/mobiusklein/mzdata"
documentation = "https://docs.rs/mzdata"
exclude = ["tmp/*", "test/data/*"]
[[bin]]
name = "mzdata"
[[example]]
name = "async_mzcat"
required-features = ["async"]
[[example]]
name = "mzcat"
required-features = ["parallelism"]
[[example]]
name = "averaging_writer"
required-features = ["parallelism", "mzsignal", "nalgebra"]
[[example]]
name = "random_access_iter"
required-features = ["nalgebra"]
doc-scrape-examples = true
[[example]]
name = "mzinfo"
doc-scrape-examples = true
[[example]]
name = "mzconvert"
doc-scrape-examples = true
[lib]
name = "mzdata"
[profile.release]
lto = true
debug = true
[features]
default = ["zlib-ng-compat", "mgf", "mzml"]
checksum = ["dep:md5", "dep:sha1", "dep:base16ct"]
mgf = []
mzml = ["dep:quick-xml", "checksum", "dep:memchr", "dep:encoding_rs"]
imzml = ["mzml", "dep:uuid"]
nalgebra = ["mzsignal", "mzsignal/nalgebra"]
openblas = ["mzsignal", "mzsignal/openblas"]
netlib = ["mzsignal", "mzsignal/netlib"]
intel-mkl = ["mzsignal", "mzsignal/intel-mkl"]
parallelism = ["dep:rayon", "mzsignal?/parallelism"]
zlib = ["flate2/zlib"]
zlib-ng-compat = ["flate2/zlib-ng-compat"]
zlib-ng = ["flate2/zlib-ng"]
zlib-rs = ["flate2/zlib-rs"]
miniz_oxide = ["flate2/rust_backend"]
mzmlb = ["mzml", "dep:hdf5", "dep:ndarray", "dep:hdf5-sys"]
hdf5_static = ["mzmlb", "hdf5-sys/static", "hdf5-sys/zlib", "dep:libz-sys"]
thermo = [
"dep:thermorawfilereader",
"thermorawfilereader/net8_0",
"thermorawfilereader/nethost-download",
"checksum",
]
bruker_tdf = [
"dep:timsrust",
"dep:parking_lot",
"dep:rusqlite",
"mzsignal",
"checksum",
]
doc-only = []
serde = [
"dep:serde",
"mzpeaks/serde",
"mzsignal?/serde",
"chrono/serde",
"dep:serde_json",
"dep:serde_with",
]
async = ["async_partial", "tokio/fs"]
async_partial = [
"dep:tokio",
"quick-xml/async-tokio",
"dep:futures",
"dep:pin-project-lite",
]
proxi = ["dep:reqwest", "serde"]
proxi-async = ["proxi", "dep:futures"]
libloading = ["dep:libloading"]
zstd = ["dep:zstd"]
[dependencies]
regex = "1"
serde = { version = "1.0", features = ["derive"], optional = true }
serde_json = { version = "1.0", optional = true }
serde_with = { version = "3.12.0", optional = true }
quick-xml = { version = "0.30", features = ["serialize"], optional = true }
uuid = { version = "1.0", features = ["v4", "serde"], optional = true }
num-traits = "0.2"
log = "0.4.20"
indexmap = { version = "2.0.0", features = ["serde"] }
chrono = "0.4.37"
bitflags = "2.5.0"
identity-hash = "0.1.0"
thiserror = "2.0.2"
mzpeaks = { version = ">=1.0.6,<1.1.0" }
rayon = { version = ">=1.8.0,<2.0", optional = true }
mzsignal = { version = ">=1.1.10,<1.2.0", default-features = false, optional = true, features = [
'avx',
] }
sha1 = { version = "0.10.6", optional = true }
md5 = { version = "0.7.0", optional = true }
base16ct = { version = "0.2.0", features = ["alloc"], optional = true }
flate2 = { version = "1.0.20" }
numpress = { version = "1.1.0", optional = true, package = "numpress-rs" }
bytemuck = { version = "1.18.0", features = ["extern_crate_alloc", "min_const_generics"] }
base64-simd = "0.8.0"
tokio = { version = "1.42", optional = true, features = ["macros"] }
hdf5 = { version = "0.8.1", optional = true, features = ["blosc", "lzf"] }
hdf5-sys = { version = "0.8.1", optional = true }
libz-sys = { version = "1.1", default-features = false, features = [
"static",
], optional = true }
ndarray = { version = "0.15.6", optional = true }
filename = { version = "0.1.1", optional = true }
reqwest = { version = "0.13", features = ["json", "blocking"], optional = true }
futures = { version = "0.3", optional = true }
thermorawfilereader = { version = "0.7.0", default-features = false, optional = true }
rusqlite = { version = "0.31.0", optional = true }
timsrust = { version = "0.4.1", default-features = false, features = [
"tdf",
], optional = true }
parking_lot = { version = "0.12.3", optional = true }
pin-project-lite = { version = "0.2.16", optional = true }
memchr = { version = "2.7.4", optional = true }
libloading = { version = "0.8.6", optional = true }
zstd = { version = "0.13.3", optional = true }
encoding_rs = { version = "0.8.35", optional = true }
[dev-dependencies]
criterion = { version = "0.5.1", features = ["html_reports"] }
test-log = "0.2.12 "
env_logger = "0.11.6"
tempfile = "3.10"
clap = { version = "4.4.11", features = ["derive"] }
tokio = { version = "1.42", features = ["macros", "fs", "rt-multi-thread"] }
[[bench]]
name = "mzml"
harness = false
[package.metadata.docs.rs]
features = [
"mzml",
"mgf",
"parallelism",
"mzsignal",
"nalgebra",
"mzmlb",
"imzml",
"async",
"proxi",
"proxi-async",
"doc-only",
"bruker_tdf",
]
no-default-features = true