# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.87.0"
name = "fgumi"
version = "0.3.0"
authors = [
    "Nils Homer <nils@fulcrumgenomics.com>",
    "Tim Fennell <tim@fulcrumgenomics.com>",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance tools for UMI-tagged sequencing data: extraction, grouping, and consensus calling"
homepage = "https://github.com/fulcrumgenomics/fgumi"
documentation = "https://docs.rs/fgumi"
readme = "README.md"
keywords = [
    "bioinformatics",
    "umi",
    "consensus",
    "sequencing",
    "ngs",
]
categories = [
    "command-line-utilities",
    "science",
]
license = "MIT"
repository = "https://github.com/fulcrumgenomics/fgumi"
resolver = "2"

[features]
codec = [
    "simplex",
    "fgumi-consensus/codec",
]
compare = []
default = [
    "simplex",
    "duplex",
    "codec",
]
dhat-heap = ["dep:dhat"]
duplex = [
    "simplex",
    "fgumi-consensus/duplex",
]
memory-debug = ["fgumi-sort/memory-debug"]
profile-adjacency = []
simplex = ["fgumi-consensus/simplex"]
simulate = ["simplex"]
stress-tests = []

[lib]
name = "fgumi_lib"
path = "src/lib/mod.rs"

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

[[test]]
name = "integration"
path = "tests/integration/main.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"

[[bench]]
name = "core_functions"
path = "benches/core_functions.rs"
harness = false
required-features = ["simplex"]

[[bench]]
name = "raw_bam"
path = "benches/raw_bam.rs"
harness = false

[[bench]]
name = "raw_bam_accessors"
path = "benches/raw_bam_accessors.rs"
harness = false

[[bench]]
name = "raw_bam_length_changing"
path = "benches/raw_bam_length_changing.rs"
harness = false

[[bench]]
name = "raw_bam_tags_editor"
path = "benches/raw_bam_tags_editor.rs"
harness = false

[[bench]]
name = "raw_bam_vs_recordbuf"
path = "benches/raw_bam_vs_recordbuf.rs"
harness = false

[[bench]]
name = "umi_assigner_threshold"
path = "benches/umi_assigner_threshold.rs"
harness = false

[dependencies.ahash]
version = "0.8"

[dependencies.anyhow]
version = "1.0.102"

[dependencies.approx]
version = "0.5.1"

[dependencies.bstr]
version = "1.12.1"

[dependencies.bytemuck]
version = "1.14"
features = ["derive"]

[dependencies.bytes]
version = "1"

[dependencies.bytesize]
version = "2.3"

[dependencies.clap]
version = "4"
features = [
    "derive",
    "string",
]

[dependencies.crc32fast]
version = "1.4"

[dependencies.crossbeam-channel]
version = "0.5"

[dependencies.crossbeam-queue]
version = "0.3"

[dependencies.crossbeam-utils]
version = "0.8.21"

[dependencies.csv]
version = "1.1"

[dependencies.dhat]
version = "0.3"
optional = true

[dependencies.enum_dispatch]
version = "0.3.13"

[dependencies.env_logger]
version = "0.11.8"

[dependencies.fgoxide]
version = "0.6.0"

[dependencies.fgumi-bam-io]
version = "0.3.0"

[dependencies.fgumi-bgzf]
version = "0.3.0"

[dependencies.fgumi-consensus]
version = "0.3.0"
default-features = false

[dependencies.fgumi-dna]
version = "0.3.0"

[dependencies.fgumi-metrics]
version = "0.3.0"

[dependencies.fgumi-raw-bam]
version = "0.3.0"
features = ["noodles"]

[dependencies.fgumi-sam]
version = "0.3.0"

[dependencies.fgumi-simd-fastq]
version = "0.3.0"

[dependencies.fgumi-sort]
version = "0.3.0"

[dependencies.fgumi-umi]
version = "0.3.0"

[dependencies.flate2]
version = "1.1"
features = ["zlib-rs"]

[dependencies.fs4]
version = "1.1"
features = ["sync"]
default-features = false

[dependencies.indexmap]
version = "2"

[dependencies.itertools]
version = "0.14.0"

[dependencies.libdeflater]
version = "1.22"

[dependencies.libmimalloc-sys]
version = "0.1.44"
features = ["extended"]

[dependencies.log]
version = "0"

[dependencies.lru]
version = "0.18.0"

[dependencies.memchr]
version = "2"

[dependencies.mimalloc]
version = "0.1.52"
default-features = false

[dependencies.noodles]
version = "0.111.0"
features = [
    "bam",
    "fasta",
    "sam",
    "bgzf",
    "core",
    "vcf",
]

[dependencies.noodles-bgzf]
version = "0.47.0"
features = ["libdeflate"]

[dependencies.num_cpus]
version = "1.16"

[dependencies.parking_lot]
version = "0.12"

[dependencies.rand]
version = "0.10"

[dependencies.rand_distr]
version = "0.6"

[dependencies.rayon]
version = "1.10"

[dependencies.read-structure]
version = "0.2.0"

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.statrs]
version = "0.18"

[dependencies.sysinfo]
version = "0.38"
features = ["system"]
default-features = false

[dependencies.tempfile]
version = "3.3.0"

[dependencies.thiserror]
version = "2"

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.fgumi-raw-bam]
version = "0.3.0"
features = [
    "test-utils",
    "noodles",
]

[dev-dependencies.noodles]
version = "0.111.0"
features = [
    "bam",
    "sam",
]

[dev-dependencies.proptest]
version = "1.10"

[dev-dependencies.rstest]
version = "0"

[build-dependencies.built]
version = "0"
features = ["git2"]

[target.'cfg(target_os = "linux")'.dependencies.nix]
version = "0.31"
features = ["fs"]
default-features = false

[target.'cfg(target_os = "macos")'.dependencies.mach2]
version = "0.6"

[profile.profiling]
debug = "line-tables-only"
inherits = "release"

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