#sensitive #derive-debug #macro-derive #fields #marked #replace #secret

macro securefmt

Drop-in replacement for the Debug derive macro that hides fields marked as sensitive

6 releases

0.1.5 Sep 14, 2024
0.1.4 May 7, 2021
0.1.2 Apr 25, 2021
0.1.1 Mar 21, 2021

#2243 in Procedural macros

Download history 277/week @ 2024-11-15 224/week @ 2024-11-22 157/week @ 2024-11-29 141/week @ 2024-12-06 138/week @ 2024-12-13 139/week @ 2024-12-20 19/week @ 2024-12-27 132/week @ 2025-01-03 123/week @ 2025-01-10 198/week @ 2025-01-17 210/week @ 2025-01-24 137/week @ 2025-01-31 197/week @ 2025-02-07 116/week @ 2025-02-14 133/week @ 2025-02-21 158/week @ 2025-02-28

651 downloads per month
Used in camo-url

BSD-3-Clause

28KB
660 lines

securefmt

Build Status Latest Version Docs

Drop-in replacement for the Debug derive macro that hides fields marked as sensitive.

Example

The following code snippet

#[derive(Debug)]
struct SensitiveData {
    id: u8,
    #[sensitive]
    secret: u8
}

fn main() {
    println!("{:?}", SensitiveData { id: 1, secret: 42 })
}

will print:

SensitiveData { id: 1, secret: <redacted> }

If the [debug_mode] feature is active, the same code will print:

WARN - WARNING: securefmt debug_mode feature is active. Sensitive data may be leaked. It is strongly recommended to disable debug_mode in production releases.
SensitiveData { id: 1, secret: 42 }

Dependencies

~220–670KB
~16K SLoC