vendor/rars/Cargo.toml
Rama main · réplica de lectura del repositorio original.
[package]
name = "rars"
version = "0.4.6+nzbfast"
description = "Pure-Rust RAR reader/extractor (decode paths used by nzbfast); perf fork of github.com/bitplane/rars"
edition = "2021"
rust-version = "1.87"
license = "MIT OR Apache-2.0"
publish = false
[lints.rust]
# `deny`, not `forbid`, since 2026-08-22: src/rar50/blake2sp/many.rs carries
# the crate's first unsafe block (entering the NEON blake2s kernel) under a
# local `#[allow(unsafe_code)]`; its comment has the argument. Since
# 2026-09-06 src/recovery/gf16_fold.rs is the second home, the SIMD GF(2^16)
# fold kernels for recovery records, under the same argument (feature-gated
# intrinsics over slices the safe wrappers bound). Since 2026-09-16
# src/crc32/pmull.rs is the third, the PMULL-folded CRC-32 on aarch64, under
# the same argument. Everything else is still refused, and `cargo test -p
# rars --lib`'s `unsafe_is_confined_to_the_neon_entry` test pins the count at
# three files.
unsafe_code = "deny"
unused_must_use = "deny"
[features]
# Exposes `codec::address_filters_harness` for the fork's address-filter
# bench and fuzz targets. Not an API; never enable it in a shipped build.
bench-internals = []
ratio-lab = []
fast = []
parallel = ["dep:rayon"]
# Probe-only: lets `RARS_STRIPED_FOLD_MIN_WINDOW` move the striped repair
# fold's team gate, so a bench can reach windows the shipped gate refuses.
# NEVER enabled by a shipped build; see `recovery/rar5.rs`.
fold-team-probe = []
[dependencies]
aes = { version = "0.9", features = ["zeroize"] }
# CBC decryption in place through the RustCrypto mode, eight AES blocks
# per backend call. Already in the workspace lockfile via nzbkit.
cbc = { version = "0.2", features = ["zeroize"] }
aho-corasick = "1.1"
blake2s_simd = "1.0"
crc32fast = "1.4"
getrandom = "0.4"
hmac = "0.13"
# The E8/E8E9 opcode scan. Already in the workspace lockfile via
# aho-corasick, so the direct dependency adds no crate and no licence.
memchr = "2"
rayon = { version = "1.12", optional = true }
sha1 = "0.11"
sha2 = "0.11"
zeroize = { version = "1.8", default-features = false, features = ["alloc", "zeroize_derive"] }
# Constants only, no calls - `O_NOFOLLOW` for the repair destination open
# (sweep 8, M10). `unsafe_code = "deny"` above still holds: reading a
# libc constant needs no unsafe block. Already in the workspace lockfile
# (nzbkit depends on it), so this adds no new crate or licence.
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[[example]]
name = "ratio_lab"
required-features = ["ratio-lab"]