[Rust] 1.93.0 업데이트 발표 (번역)
https://blog.rust-lang.org/2026/01/22/Rust-1.93.0/
러스트는 누구든 믿음직하고 효과적인 소프트웨어를 만들 수 있게 도와주는 끝내주는 언어입니다.
만약 rustup을 통해서 Rust의 이전버전을 설치해놓은 상대라면, 업데이트는 아주 쉽습니다. 그냥 이렇게 치면 돼요.
rustup update stable
rustup을 설치한 적이 없다면, 우리 웹사이트의 설치 페이지에서 받을 수 있습니다. 그리고 깃허브에서 이번 버전에 대한 릴리즈 노트를 참조해보세요.
미래의 릴리즈를 테스트해서 러스트 팀을 돕고 싶다면, 로컬에서 베타 채널(rustup default beta) 또는 nightly 채널(rustup default nightly)로 업데이트하는 것을 고려할 수 있습니다.
버그를 발견했다면 리포트해주세요!
1.93.0 stable에는 무엇이 있나요?
bundled musl를 1.2.5로 업데이트
다양한 *-linux-musl target들이 이제 musl 1.2.5로 날아오릅니다.
이건 주로 musl 1.2.3로 번들된, x86_64, aarch64, powerpc64le에 대한 static musl 빌드에 영향을 줍니다.
이 업데이트는 여러개의 수정과 개선을 포함하며, Rust ecosystem에 영향을 주는 breaking change를 유발하기도 합니다.
이번 업데이트의 주된 동기는, 1.2.4에 발생했던 musl의 DNS 리졸버 버그를 해결하는 것이었습니다. 1.2.5에 바로 고쳐졌거든요.
애무튼 이제는 정적 링크에 musl 타겟을 사용할 때, 특히 대규모 DNS 레코드와 재귀적 네임서버가 있는 경우 네트워킹을 수행하는 portable Linux 바이너리가 더 안정적으로 작동해야 합니다.
하지만 1.2.4에는 breaking change도 함께 생깁니다. 기존 Rust libc crate가 사용하던 여러개의 레거시 호환성 symbol이 제거되는 거죠.
이 문제에 대한 해결책은 2023년 6월에 libc 0.2.146으로 배포되었으며, 우리는 이게 Rust target에서도 준비할 만큼 충분히 널리 퍼졌다고 생각합니다.
자세한 내용은 이전 발표를 참조해주세요.
global allocator가 thread-local 스토리지를 사용할 수 있도록 허용
Rust 1.93은 표준 라이브러리의 내부를 조정, Rust로 작성된 global allocators가 system allocator를 대신 사용하는 것으로 변경합니다.
이를 통해 재진입(re-entrancy) 문제 없이 std의 thread local! 및 std:🧵:current를 사용할 수 있도록 합니다.
자세한 것은 문서를 참조하세요.
asm! lines에서의 cfg attributes
이전에는 인라인 어셈블리 섹션의 개별 부분에 cfg가 필요한 경우, 해당 섹션을 포함하거나 포함하지 않고 전체 asm! 블록을 반복해야 했습니다.
1.93 버전부터는 asm! 블록 내의 개별 statement에 cfg를 적용할 수 있습니다.
asm!(** // or global_asm! or naked_asm!******
** "nop",**
** #[cfg(target_feature = "sse2")]**
** "nop",**
** **** // ...******
** #[cfg(target_feature = "sse2")]**
** a = const 123,**** // only used on sse2******
);
Stable이 된 API들
<[MaybeUninit
<[MaybeUninit
<[MaybeUninit
<[MaybeUninit
<[MaybeUninit
String::into_raw_parts
Vec::into_raw_parts
<[T]>::as_array
<[T]>::as_mut_array
*<const [T]>::as_array
*<mut [T]>::as_mut_array
VecDeque::pop_front_if
VecDeque::pop_back_if
Duration::from_nanos_u128
char::MAX_LEN_UTF8
char::MAX_LEN_UTF16
std::fmt::from_fn
std::fmt::FromFn
기타 변경점
이외의 모든 변경사항은 각 Rust, Cargo, Clippy 페이지를 확인하세요
1.93.0의 컨트리뷰터들에게
1.93.0의 완성엔 수많은 사람들이 함께했습니다. 전부 여러분이 없었다면 불가능했을 거에요.