RUST · UNSAFE
safe API와 unsafe 코어 경계
unsafe는 작은 내부 구현 영역에 가두고, 바깥 safe API가 호출자가 지켜야 할 조건을 대신 보장해야 합니다.
핵심 구조
unsafe core
safe wrapper
호출자가 안전하게 쓰는 공개 API
invariant check
길이, 정렬, aliasing 조건 확인
unsafe block
원시 포인터/FFI 호출을 좁게 격리
test contract
Miri, fuzz, 문서로 불변조건 확인
safe wrapper
→
invariant check
→
unsafe block
→
test contract
판단 기준
check
작게 격리
unsafe 블록은 필요한 줄에만 최소화합니다.
문서화
caller가 지켜야 하는 safety 조건을 명확히 씁니다.
safe 추상화
외부에는 안전한 타입과 함수로 노출하는 것이 목표입니다.
검증 도구
Miri와 테스트로 컴파일러가 보지 못한 영역을 보완합니다.