csaf-core 1.4.13

CSAF storage, validation, sidecar generation, import/export
# SPDX-License-Identifier: Apache-2.0

[package]
name = "csaf-core"
version.workspace = true
description = "CSAF storage, validation, sidecar generation, import/export"
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
readme = "../../README.md"
documentation.workspace = true
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true

[package.metadata.cargo-machete]
# workspace-hack is the hakari feature-unification crate; it is
# intentionally never referenced in source.
ignored = ["workspace-hack"]

[dependencies]
blake3 = { workspace = true }
cap-std = { workspace = true }
chrono = { workspace = true }
csaf-models = { workspace = true }
csaf-rs = { version = "0.5.1", optional = true }
generic-array = { workspace = true }
redb = { workspace = true }
regex = { workspace = true }
rusqlite = { workspace = true }
self_update = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
sha2 = { workspace = true }
sha3 = { workspace = true }
tempfile = { workspace = true }
thiserror = { workspace = true }
toml = { workspace = true }
tracing = { workspace = true }
uuid = { workspace = true }

[dev-dependencies]
anyhow = { workspace = true }
argon2 = { workspace = true }
askama = { workspace = true }
bytes = { workspace = true }
clap = { workspace = true }
h3 = { workspace = true }
h3-quinn = { workspace = true }
http = { workspace = true }
http-body-util = { workspace = true }
hyper-util = { workspace = true }
matchit = { workspace = true }
mime_guess = { workspace = true }
proptest = { workspace = true }
quinn = { workspace = true }
rcgen = { workspace = true }
rustls = { workspace = true }
static_assertions = { workspace = true }
sysinfo = { workspace = true }
tempfile = { workspace = true }
time = { workspace = true }
tokio = { workspace = true }
tokio-rustls = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }

[features]
# OASIS csaf-rs validator — ON BY DEFAULT (0.3.4+). Every imported and
# exported advisory is validated against the official CSAF 2.1 test suite
# (JSON schema + mandatory 6.1.x tests). Disable with
# `--no-default-features` to drop csaf-rs and its transitive crates.
default = ["oasis-validator"]
oasis-validator = ["dep:csaf-rs"]

# blake3's hand-written NEON C intrinsics (blake3_neon.c) fail to compile
# under cargo-xwin/clang for Windows-ARM64: the MSVC SDK's arm64_neon.h
# stubs `vreinterpretq_u32_u8` to a no-op, so `__builtin_shufflevector`
# receives a scalar instead of a vector. Force blake3's portable pure-Rust
# backend on that target only; every native target keeps the SIMD path.
[target.'cfg(all(target_arch = "aarch64", target_os = "windows"))'.dependencies]
blake3 = { workspace = true, features = ["pure"] }

[lints]
workspace = true