Crate plutonium

Source
Expand description

Helping you make your programs less safe.

You can learn more about plutonium at the Rust Security Advisory Database.

§Usage

Add plutonium to your Cargo.toml:

[dependencies]
plutonium = "*"

and go:

use plutonium::safe;

#[safe]
fn super_safe(x: f32) -> i32 {
    std::mem::transmute::<f32, i32>(x)
}

#[safe]
unsafe fn deref_null() {
    *std::ptr::null::<u8>();
}

println!("{:?}", super_safe(1.0));
deref_null();

§Roadmap:

  1. Disable #![forbid(unsafe_code)]
  2. Add #![forbid(safe_code)] proc-macro lint

Macros§

optimize
Apply extreme optimizations to your code (requires Rust 1.45 or later).

Attribute Macros§

fallout
Fallthrough match arms
safe
Turn unsafe code into “safe” code.
unby
Imbue values with interesting properties.