[package]
name = "sqlite-hashes"
version = "0.10.10"
description = "Hashing functions for SQLite with aggregation support: MD5, SHA1, SHA256, SHA512, Blake3, FNV-1a, xxHash"
authors = ["Yuri Astrakhan <YuriAstrakhan@gmail.com>"]
repository = "https://github.com/nyurik/sqlite-hashes"
edition = "2021"
license = "MIT OR Apache-2.0"
keywords = ["sqlite", "rusqlite", "hash", "md5", "sha256"]
categories = ["database", "cryptography"]
rust-version = "1.85"
[lib]
name = "sqlite_hashes"
[[example]]
name = "sqlite_hashes"
path = "src/cdylib/cdylib.rs"
crate-type = ["cdylib"]
required-features = ["loadable_extension"]
[[bench]]
name = "bench"
harness = false
[features]
default = [
"trace",
"aggregate",
"hex",
"md5",
"sha1",
"sha224",
"sha256",
"sha384",
"sha512",
"blake3",
"fnv",
"xxhash",
]
default_loadable_extension = [
"loadable_extension",
"aggregate",
"hex",
"md5",
"sha1",
"sha224",
"sha256",
"sha384",
"sha512",
"blake3",
"fnv",
"xxhash",
]
trace = ["dep:hex", "dep:log"]
hex = ["dep:hex"]
aggregate = []
loadable_extension = ["rusqlite/loadable_extension", "rusqlite/trace"]
md5 = ["dep:md-5"]
sha1 = ["dep:sha1"]
sha224 = ["dep:sha2"]
sha256 = ["dep:sha2"]
sha384 = ["dep:sha2"]
sha512 = ["dep:sha2"]
blake3 = ["dep:blake3"]
fnv = ["dep:noncrypto-digests", "noncrypto-digests?/fnv"]
xxhash = [
"dep:noncrypto-digests",
"noncrypto-digests?/xxh3",
"noncrypto-digests?/xxh32",
"noncrypto-digests?/xxh64",
]
[dependencies]
blake3 = { version = "1.8.4", features = ["traits-preview"], optional = true }
hex = { version = "0.4", optional = true }
log = { version = "0.4.28", optional = true }
rusqlite = { version = ">=0.30.0", features = ["functions"] }
digest = "0.11.3"
md-5 = { version = "0.11.0", optional = true }
noncrypto-digests = { version = "0.4.0", optional = true }
sha1 = { version = "0.11.0", optional = true }
sha2 = { version = "0.11.0", optional = true }
[dev-dependencies]
criterion = { version = "0.8", features = ["html_reports"] }
ctor = "1.0"
env_logger = "0.11"
insta = { version = "1", features = [] }
[lints.rust]
unused_qualifications = "warn"
[lints.clippy]
panic_in_result_fn = "warn"
todo = "warn"
unwrap_used = "warn"
cargo = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
missing_errors_doc = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"