[package]
name = "kmerutils"
version = "0.0.13"
authors = ["jeanpierre.both@gmail.com"]
repository = "https://github.com/jean-pierreBoth/kmerutils"
documentation = "https://docs.rs/kmerutils"
keywords = ["genomics", "hash", "kmer", "sketching"]
edition = "2021"
license = "MIT OR Apache-2.0"
description = "Kmer counting, hashing, sequence sketching"


[[bin]]

name = "parsefastq"
path = "src/bin/parsefastq.rs"

[[bin]]

name = "qualityloader"
path = "src/bin/qualityload.rs"
required-features = ["withzmq"]

[[bin]]

name = "datasketcher"
path = "src/bin/datasketcher.rs"

[[example]]

name = "kmerreload"
path = "examples/reloadkmermulti.rs"


[lib]

path = "src/lib.rs"
test = true

doc = true
#[[example]]


[dependencies]
# default is version spec is ^ meaning can update up to max non null version number
# cargo doc --no-deps avoid dependencies doc generation
#
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0" }

num = { version = "0.4" }
hdrhistogram = { version = "7.5" }

multimap = { version = "0.10" }

# for networking
zmq = { version = "0.9", optional = true }
xdr-codec = { version = "0.4" }

# for //
crossbeam = { version = "0.8" }

parking_lot = { version = "0.12" }
rayon = { version = "1.10" }
num_cpus = { version = "1.16" }

ndarray = { version = "0.16" }
needletail = { version = "0.6" }
wavelet-matrix = { version = "0.4.7" }
clap = { version = "4.5" }

#  for hashing 
wyhash = { version = "0.5" }
rand = { version = "0.8" }
rand_distr = { version = "0.4" }
rand_xorshift = { version = "0.3" }
rand_xoshiro = { version = "0.6" }

cuckoofilter = { version = "0.5" }
bloom = { version = "0.3" }
metrohash = { version = "1.0.5" }

fxhash = { version = "0.2" }
indexmap = { version = "2.7" }
fnv = { version = "1.0" }

##

probminhash = { version = "0.1.11" }
# probminhash =  {git = "https://github.com/jean-pierreBoth/probminhash"}
# probminhash = { path = "../probminhash" }
#

anyhow = { version = "1.0" }
lazy_static = { version = "1.4" }

redis = { version = "0.28" }
# decreasing order of log for debug build : (max_level_)trace debug info warn error off
# decreasing order of log for release build (release_max_level_)  .. idem
#log = { version = "0.4", features = ["max_level_trace", "release_max_level_trace"] }
log = { version = "0.4" }
env_logger = { version = "0.9" }
# to monitor memory usage (if log::Debug )
memory-stats = { version = "1.1", features = ["always_use_statm"] }

# anndists is provided by hnsw_rs
hnsw_rs = { version = "0.3.1" }
# hnsw_rs = { path = "../hnswlib-rs" }
# hnsw_rs = { git = "https://github.com/jean-pierreBoth/hnswlib-rs" }

[features]

default = ["sminhash2"]

# This feature requires libzmq (and libsodium). It enables loadind of quality as a service in the target qualityloader
withzmq = ["zmq"]

simdeez_f = ["hnsw_rs/simdeez_f"]

sminhash2 = ["probminhash/sminhash2"]