
Rust 릴리스 팀의 공식 발표에 따르면, 프로그래밍 언어 러스트(Rust) 1.99.0이 1일 정식 출시됐다. 이번 버전에서는 C 언어와 연동할 때 쓰는 가변 인자 함수를 러스트 코드 안에서 직접 정의할 수 있게 됐다. 이전에도 외부에서 정의한 가변 인자 함수를 호출할 수는 있었지만, 러스트에서 함수를 만드는 기능은 안정화되지 않았었다.
새 기능은 `extern "C"`와 `extern "C-unwind"` ABI를 대상으로 한다. 인자 개수가 일정하지 않은 함수를 구현할 때 `VaList`로 인자를 읽을 수 있으며, 어떤 타입을 읽을 수 있는지는 `VaArgSafe` 트레이트가 제한한다. C 라이브러리와 맞닿는 저수준 코드를 러스트로 작성하는 개발자에게 직접적인 변화다.
원시 포인터에서 값의 크기와 정렬 정보를 얻는 `Layout::for_value_raw`, `mem::size_of_val_raw`, `mem::align_of_val_raw`도 안정화됐다. 릴리스 팀은 이들 API가 크기가 컴파일 시점에 정해지지 않는 타입을 포함해 원시 포인터의 레이아웃 정보를 다루는 안전 요건을 명확히 한다고 설명했다.
표준 라이브러리 문서에는 `Box::leak`으로 누출한 메모리를 나중에 다시 해제하는 패턴을 권장하지 않는다는 안내가 더해졌다. 릴리스 팀은 이것이 언어 동작 변경은 아니며, 현재 및 향후 컴파일러 최적화와 충돌할 수 있는 사용 방식에 대한 권고라고 밝혔다. 해당 경우에는 `Box::into_non_null` 사용을 권장한다.
기존에 `rustup`을 설치한 개발자는 `rustup update stable` 명령으로 새 버전을 받을 수 있다.
출처: Rust 릴리스 팀 공식 블로그 https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/
Rust 공식 GitHub 릴리스 https://github.com/rust-lang/rust/releases/tag/1.99.0