[package]
edition = "2024"
rust-version = "1.88.0"
name = "mzcore"
version = "0.2.0"
authors = [
"Douwe Schulte <d.schulte@uu.nl>",
"Ralf Gabriels",
"Auke Heerdink",
]
build = false
include = [
"src/**/*",
"images/**/*",
"README.md",
"benches/**/*",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core logic for handling massspectrometry in Rust."
readme = "README.md"
keywords = [
"spectra",
"mass-spectrometry",
"bio",
"fragmentation",
"proforma",
]
categories = [
"science::bioinformatics::proteomics",
"science::bioinformatics::sequence-analysis",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rusteomics/mzcore"
resolver = "2"
[package.metadata.docs.rs]
cargo-args = [
"-Zunstable-options",
"-Zrustdoc-scrape-examples",
]
features = [
"isotopes",
"glycan-render-bitmap",
]
[features]
coloured-errors = ["context_error/colored"]
default = ["flate2"]
glycan-render = []
glycan-render-bitmap = [
"dep:zeno",
"dep:swash",
"glycan-render",
]
http = ["mzcv/http"]
internal-no-data = []
isotopes = [
"dep:probability",
"dep:ndarray",
]
search-index = ["mzcv/search-index"]
[lib]
name = "mzcore"
path = "src/lib.rs"
[dependencies.bincode]
version = "2.0"
features = ["serde"]
[dependencies.context_error]
version = "0.3.0"
features = ["serde"]
[dependencies.flate2]
version = "1.0"
optional = true
[dependencies.itertools]
version = ">0.12, <=0.15"
[dependencies.mzcv]
version = "0.3.0"
features = ["serde"]
[dependencies.ndarray]
version = "0.17"
optional = true
[dependencies.ordered-float]
version = "5.0"
features = ["serde"]
[dependencies.probability]
version = "0.20"
optional = true
[dependencies.roxmltree]
version = "0.21"
[dependencies.serde]
version = ">1.0.150, <=1.0"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.11"
[dependencies.swash]
version = "0.2"
optional = true
[dependencies.thin-vec]
version = ">0.2.10, <=0.2"
features = ["serde"]
[dependencies.uom]
version = ">0.32, <=0.38"
features = [
"use_serde",
"usize",
"isize",
"f64",
"f32",
"i8",
]
default-features = false
[dependencies.zeno]
version = "0.3.2"
optional = true
[dev-dependencies.base64]
version = ">0.15, <=0.23"
[dev-dependencies.directories]
version = "6.0"
[dev-dependencies.paste]
version = ">1.0.5"
[dev-dependencies.png]
version = "0.18"
[lints.clippy]
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
cognitive_complexity = "allow"
literal_string_with_formatting_args = "allow"
module_inception = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
panic_in_result_fn = "warn"
redundant_pub_crate = "allow"
too_long_first_doc_paragraph = "allow"
too_many_lines = "allow"
unreadable_literal = "allow"
unsafe_derive_deserialize = "allow"
unwrap_in_result = "warn"
wildcard_imports = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
ambiguous_glob_reexports = "deny"
ambiguous_negative_literals = "warn"
clashing_extern_declarations = "deny"
const_item_mutation = "deny"
dangling_pointers_from_temporaries = "deny"
deref_nullptr = "deny"
drop_bounds = "deny"
future_incompatible = "deny"
hidden_glob_reexports = "deny"
improper_ctypes = "deny"
improper_ctypes_definitions = "deny"
invalid_from_utf8 = "deny"
invalid_macro_export_arguments = "deny"
invalid_nan_comparisons = "deny"
invalid_reference_casting = "deny"
invalid_value = "deny"
keyword_idents = "warn"
let_underscore = "warn"
macro_use_extern_crate = "warn"
meta_variable_misuse = "warn"
missing_abi = "warn"
missing_copy_implementations = "warn"
missing_debug_implementations = "warn"
missing_docs = "warn"
noop_method_call = "warn"
opaque_hidden_inferred_bound = "deny"
overlapping_range_endpoints = "deny"
redundant_imports = "warn"
redundant_lifetimes = "warn"
single_use_lifetimes = "warn"
suspicious_double_ref_op = "deny"
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unconditional_recursion = "deny"
unnameable_test_items = "deny"
unnameable_types = "warn"
unreachable_pub = "deny"
unsafe_op_in_unsafe_fn = "deny"
unstable_syntax_pre_expansion = "deny"
unused_crate_dependencies = "warn"
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_imports = "warn"
unused_lifetimes = "deny"
unused_qualifications = "warn"
variant_size_differences = "warn"
[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = [
"cfg(f32)",
"cfg(github_action)",
"cfg(si)",
]
[lints.rust.unused]
level = "warn"
priority = -1