primait/veil has 51 GitHub stars and 4 forks. GitHot measured 0 stars in 24 hours, 0 in 7 days, and 0 in 15 days. Last checked 2026-11-15 06:48 UTC. Last push 2026-11-02.
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- 0
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Rust derive macro for redacting sensitive data in std::fmt::Debug
SecurityREADME.md
OriginalA derive macro that implements std::fmt::Debug for a struct or enum variant, with certain fields redacted.
The purpose of this macro is to allow for easy, configurable and efficient redaction of sensitive data in structs and enum variants. This can be used to hide sensitive data in logs or anywhere where personal data should not be exposed or stored.
Usage
Add to your Cargo.toml:
[dependencies]
veil = "0.3.0"
Usage documentation can be found here.
Example
The example is explained in detail here.
#[derive(Redact)]
struct CreditCard {
#[redact(partial)]
number: String,
#[redact]
expiry: String,
#[redact(fixed = 3)]
cvv: String,
#[redact(partial)]
cardholder_name: String,
}
#[derive(Redact)]
#[redact(all, variant)]
enum CreditCardIssuer {
MasterCard,
Visa,
AmericanExpress,
}
#[derive(Redact)]
#[redact(all, partial)]
struct Vehicle {
license_plate: String,
make: String,
model: String,
color: String,
}
#[derive(Debug)]
struct Policy {
id: Uuid,
name: String,
description: String,
}
#[derive(Redact)]
enum InsuranceStatus {
#[redact(all, partial)]
Insured {
#[redact(fixed = 12)]
policy: Policy,
policy_started: String,
policy_expires: String,
#[redact(skip)]
payment_card: CreditCard,
#[redact(skip)]
vehicles: Vec<Vehicle>,
},
Uninsured {
policies_available: Vec<Policy>,
},
}
Environmental Awareness
In testing environments it may be useful to disable redaction entirely. You can globally disable Veil's redaction behavior at runtime by enabling the non-default feature flag toggle and:
- Setting the
VEIL_DISABLE_REDACTIONenvironment variable to "1", "true" or "on" (case insensitive).
OR
- Calling the
veil::disablefunction. See this example.
These are only checked ONCE for security purposes.