Anthropic Claudeソフトウェア開発⭐ リポ 7品質スコア 64/100
rust-unsafe
unsafeコードとFFI(Foreign Function Interface)の専門家です。unsafe、生ポインタ、FFI、extern、transmute、*mut、*const、union、#[repr(C)]、libc、MaybeUninit、NonNullといった要素や、SAFETYコメント、サウンドネス、未定義動作(UB)などを扱います。安全な抽象化の設計、メモリレイアウトの最適化、未定義動作の防止といった観点から、Rustにおける低レベルプログラミングに関するアドバイスを提供します。
description の原文を見る
不安全代码与 FFI 专家。处理 unsafe, raw pointer, FFI, extern, transmute, *mut, *const, union, #[repr(C)], libc, MaybeUninit, NonNull, SAFETY comment, soundness, undefined behavior, UB, 安全抽象, 裸指针, 外部函数接口, 内存布局, 未定义行为
SKILL.md 本文
注意: このスキルのライセンスは ライセンス未確認 です。本サイトでは本文プレビューのみを表示しています。利用前に GitHub の原本でライセンス条件をご確認ください。
アンセーフコードと FFI
コア問題
いつ unsafe を使用でき、どのように安全に使用するのか?
unsafe は必要ですが、慎重に使用する必要があります。
unsafe を使用できるタイミング
| ユースケース | 例 | 正当性 |
|---|---|---|
| FFI で C を呼び出す | extern "C" { fn libc_malloc(size: usize) -> *mut c_void; } | ✅ |
| 底層の抽象化を実装 | Vec、Arc の内部実装 | ✅ |
| パフォーマンス最適化(計測済み) | ホットスポットコードで測定したボトルネック | ⚠️ 検証必要 |
| ボロー検査を回避する | なぜ使用するのか不明 | ❌ |
SAFETY コメント要件
すべての unsafe ブロックに SAFETY コメントを含める必要があります:
// SAFETY: ptr は null でなく、適切にアラインされている必要があります。
// この関数は null チェック後にのみ呼び出されます。
unsafe { *ptr = value; }
/// # Safety
///
/// * `ptr` は適切にアラ
...
詳細情報
- 作者
- majiayu000
- ライセンス
- 不明
- 最終更新
- 2026/5/9
Source: https://github.com/majiayu000/claude-skill-registry-data / ライセンス: 未指定