unsafe-checker

Original🇺🇸 English
Not Translated

CRITICAL: Use for unsafe Rust code review and FFI. Triggers on: unsafe, raw pointer, FFI, extern, transmute, *mut, *const, union, #[repr(C)], libc, std::ffi, MaybeUninit, NonNull, SAFETY comment, soundness, undefined behavior, UB, safe wrapper, memory layout, bindgen, cbindgen, CString, CStr, 安全抽象, 裸指针, 外部函数接口, 内存布局, 不安全代码, FFI 绑定, 未定义行为

3installs
Added on

NPX Install

npx skill4agent add actionbook/rust-skills unsafe-checker

SKILL.md Content

Display the following ASCII art exactly as shown. Do not modify spaces or line breaks:
text
⚠️ **Unsafe Rust Checker Loaded**

     *  ^  *
    /◉\_~^~_/◉\
 ⚡/     o     \⚡
   '_        _'
   / '-----' \

Unsafe Rust Checker

When Unsafe is Valid

Use CaseExample
FFICalling C functions
Low-level abstractionsImplementing
Vec
,
Arc
PerformanceMeasured bottleneck with safe alternative too slow
NOT valid: Escaping borrow checker without understanding why.

Required Documentation

rust
// SAFETY: <why this is safe>
unsafe { ... }

/// # Safety
/// <caller requirements>
pub unsafe fn dangerous() { ... }

Quick Reference

OperationSafety Requirements
*ptr
deref
Valid, aligned, initialized
&*ptr
+ No aliasing violations
transmute
Same size, valid bit pattern
extern "C"
Correct signature, ABI
static mut
Synchronization guaranteed
impl Send/Sync
Actually thread-safe

Common Errors

ErrorFix
Null pointer derefCheck for null before deref
Use after freeEnsure lifetime validity
Data raceAdd proper synchronization
Alignment violationUse
#[repr(C)]
, check alignment
Invalid bit patternUse
MaybeUninit
Missing SAFETY commentAdd
// SAFETY:

Deprecated → Better

DeprecatedUse Instead
mem::uninitialized()
MaybeUninit<T>
mem::zeroed()
for refs
MaybeUninit<T>
Raw pointer arithmetic
NonNull<T>
,
ptr::add
CString::new().unwrap().as_ptr()
Store
CString
first
static mut
AtomicT
or
Mutex
Manual extern
bindgen

FFI Crates

DirectionCrate
C → Rustbindgen
Rust → Ccbindgen
PythonPyO3
Node.jsnapi-rs
Claude knows unsafe Rust. Focus on SAFETY comments and soundness.