Rust로 그린 스레드 런타임을 처음부터 만들기
Rust로 그린 스레드 런타임을 직접 구현하며 스택 할당, ARM64 레지스터 문맥 전환, 작업 스케줄링 과정을 설명합니다. 고정 크기 스택과 워커별 큐를 쓰는 이유, `join`과 패닉 처리까지 살펴보며 스택형 태스크와 비동기 태스크의 차이도 짚습니다.
보안과 개인정보, 운영체제와 클라우드·데이터 인프라를 다룹니다.
Rust로 그린 스레드 런타임을 직접 구현하며 스택 할당, ARM64 레지스터 문맥 전환, 작업 스케줄링 과정을 설명합니다. 고정 크기 스택과 워커별 큐를 쓰는 이유, `join`과 패닉 처리까지 살펴보며 스택형 태스크와 비동기 태스크의 차이도 짚습니다.
안전한 Rust로 작성한 Brotli 구현 mbrotli의 최적화 과정과 Google의 C 구현을 비교합니다. 일부 압축 품질에서는 처리량이 앞서지만 디코딩은 모든 측정 품질에서 뒤졌으며, 측정 조건과 FFI의 안전성 수정 때문에 결과를 그대로 일반화하기 어렵다고 설명합니다.
Rust 직렬화 라이브러리 Serde의 데이터 모델과 재귀 설계가 만드는 제약을 짚고, 이벤트를 힙에 쌓는 새 라이브러리 Deser를 소개합니다. Deser는 오류 위치와 확장 값 처리, 중첩 데이터의 스트리밍을 개선하지만 protobuf를 지원하지 않으며 성능과 바이너리 크기에서 비용을 치릅니다.
Rust의 SIMD 생태계를 자동 벡터화, portable SIMD 라이브러리, 플랫폼별 인트린식 관점에서 비교합니다. 라이브러리별 기능과 런타임 디스패치의 차이, 컴파일러 최적화 문제를 짚고 x86·ARM 등 하드웨어의 특성도 살펴봅니다.
Rust로 개발하는 마이크로커널 운영체제 Redox가 8월 한 달간 진행한 개발 내용을 공개했습니다. 링 버퍼 기반 I/O로 NVMe·파일시스템 성능을 벤치마크에서 14~15배 높였고, 커널 메모리 누수를 고쳐 GCC 테스트 빌드 시간을 10시간에서 약 30분으로 줄였습니다.
Rust의 `allocator_api` 기능이 안정화돼 Rust 1.100에 포함될 예정입니다. 개발자는 전역 할당자에 의존하지 않고 `Box`와 `Vec`에 사용자 지정 할당자를 지정할 수 있으며, 현재 안정화된 표준 라이브러리 지원은 이 두 타입에 한정됩니다.
Rust용 SIMD 라이브러리 Fearless SIMD가 v1.0으로 안정화됐습니다. 안전한 SIMD intrinsic 접근, 하드웨어 벡터 폭 활용, 함수 멀티버저닝을 제공하며 직접 의존하는 크레이트 30개와 간접 의존 크레이트 1,000개 이상에서 사용되고 있습니다.
Rust의 Miri가 빌드에 필요한 환경 변수를 보존하려고 target/에 모든 환경 변수를 저장하면서, GitHub Actions 캐시를 읽는 PR에 시크릿이 노출될 수 있었습니다. Rust 팀은 저장 범위를 줄인 수정판을 준비하고, Miri를 실행하는 CI 설정을 점검하라고 권고합니다.
2015년 이후 방치된 Rust용 crc32 Crate를 현대적인 구현으로 재작성한 사례를 소개합니다. slicing-by-16, no_std, 빌드 타임 코드 생성, Python·Node.js 바인딩을 추가했으며, 순수 Safe Rust 경로에서 최대 약 1,282 MiB/s를 달성하면서 이식성과 안전성을 강조합니다.
15년 넘게 유지된 Linux Binder IPC 드라이버의 기존 C 구현이 Rust 구현으로 대체됩니다. Rust Binder는 기능 동등성을 확보했고 Android 기기에서 검증됐으며, 성능도 C 구현과 대등하거나 더 빠른 것으로 평가됐습니다.
Cloudflare가 Pingora Backend Router의 일관성 해싱 구현을 분석해 해시 링의 메모리 구조와 해시 개수를 줄였습니다. Rust 구조체를 25% 압축하고 서버당 해시를 90% 줄인 결과, 캐시 무효화 없이 전 세계에서 100TB의 RAM을 회수했습니다.