๋ชจ์ง๋ผ ํ๋ก์ ํธ์์ ๊ฐ๋ฐ๋์์ง๋ง ํ์ฌ๋ ๋ ๋ฆฝ ๋น์๋ฆฌ ๋จ์ฒด์ธ Rust Foundation์ ํ์์ผ๋ก ๊ฐ๋ฐ๋๊ณ ์๋ Rust 1.94 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ถ์๋์์ต๋๋ค. ์ด ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ์ค์ ์ ๋๊ณ ์์ผ๋ฉฐ, ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ๋ฐํ์์ ์ฌ์ฉํ์ง ์์ผ๋ฉด์๋ ๋์ ๋ณ๋ ฌ์ฑ์ ๊ตฌํํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค(๋ฐํ์์ ๊ธฐ๋ณธ ์ด๊ธฐํ ๋ฐ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ง ๊ด๋ฆฌ๋ก ์ถ์๋จ).
Rust์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ์์ ํฌ์ธํฐ ์กฐ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ณ , ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ฑฐ๋, ๋ ํฌ์ธํฐ๋ฅผ ์ญ์ฐธ์กฐํ๊ฑฐ๋, ๋ฒํผ ์ค๋ฒ๋ฐ์ ์ผ์ผํค๋ ๋ฑ ์ ์์ค ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์๋ฐฉํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ณธ ํ๋ก์ ํธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ, ๋น๋ ๊ฐ์ํ ๋ฐ ์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํด Cargo ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์คํ ์ ์ํด crates.io ์ ์ฅ์๋ฅผ ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ปดํ์ผ ์๊ฐ์ ์ฐธ์กฐ ํ์ธ, ๊ฐ์ฒด ์์ ๊ถ ์ถ์ , ๊ฐ์ฒด ์๋ช (๋ฒ์) ์ถ์ ๋ฐ ์ฝ๋ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ์ ํ์ฑ ํ๊ฐ๋ฅผ ํตํด Rust์์ ์ ๊ณต๋ฉ๋๋ค. Rust๋ ๋ํ ์ ์ ์ค๋ฒํ๋ก์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ ์ ๋ณ์ ๊ฐ์ ํ์ ์ด๊ธฐํ๊ฐ ํ์ํ๋ฉฐ, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ฅ๋ฅผ ๋ ์ ์ฒ๋ฆฌํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ ์ฐธ์กฐ ๋ฐ ๋ณ์ ๊ฐ๋ ์ ์ ์ฉํ๊ณ , ๊ฐ๋ ฅํ ์ ์ ์ ํ ์ง์ ์ ์ ๊ณตํ์ฌ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํฉ๋๋ค.
์ฃผ์ ํ์ :
- ์ด์ slice ํ์ ์ array_windows ๋ฉ์๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ด ๋ฉ์๋๋ ๊ณ ์ ๋ ํฌ๊ธฐ์ ์๋์ฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ผ์ด์ค๋ฅผ ์ํํ๋ ์ดํฐ๋ ์ดํฐ๋ฅผ ์์ฑํ๋ฉฐ, ์๋์ฐ๋ ํ ๋ฒ์ ํ๋์ ์์์ฉ ์ด๋ํฉ๋๋ค. ๊ธฐ์กด์ windows ๋ฉ์๋์ ๋ฌ๋ฆฌ array_windows๋ ๊ณ ์ ๋ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๊ฐ ๋ฐ๋ณต๋ง๋ค ํฌ๊ธฐ๊ฐ ์ ์๋์ง ์์ ์ฌ๋ผ์ด์ค(&[T]) ๋์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฐฐ์ด(&[T; N])์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ฐํํฉ๋๋ค. ๋ฐฐ์ด ํฌ๊ธฐ๊ฐ ์ปดํ์ผ๋ฌ์ ๋ฏธ๋ฆฌ ์๋ ค์ ธ ์์ผ๋ฏ๋ก, ๊ฐ ๋ฐ๋ณต ๋จ๊ณ์์ ๊ฒฝ๊ณ ๊ฒ์ฌ๋ฅผ ์๋ตํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์์: let slice = [0, 1, 2, 3]; let mut iter = slice.array_windows(); assert_eq!(iter.next().unwrap(), &[0, 1]); assert_eq!(iter.next().unwrap(), &[1, 2]); assert_eq!(iter.next().unwrap(), &[2, 3]); assert!(iter.next().is_none());
- Cargo ํจํค์ง ๊ด๋ฆฌ์์ ๊ตฌ์ฑ ํ์ผ(.cargo/config.toml)์ ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ์ ์๋ฆฌ์ ์ฝ์ ํ ์ ์๋ "include" ์ง์์ด๋ฅผ ๊ตฌํํฉ๋๋ค. include = [ "frodo.toml", "samwise.toml", ] include = [ { path = "required.toml" }, { path = "optional.toml", optional = true }, ]
- ๋งค๋ํ์คํธ ๋ฐ ๊ตฌ์ฑ ํ์ผ์ TOML 1.1 ๋งํฌ์ ์ธ์ด์ ์ ๋ฒ์ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด ์ ๋ฒ์ ์ ์ฌ๋ฌ ์ค๋ก ๋ ๋ด์ฅ ํ ์ด๋ธ, 16์ง์ ๋ฐ์ดํธ ํํ์ ์ฝ์ ํ๊ธฐ ์ํ "\xHH" ์ด์ค์ผ์ดํ ์ํ์ค, "\u001B"๋ฅผ ์ํ "\e" ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ์ง์ํฉ๋๋ค. ๋ํ ๋ง์ง๋ง ์์ ๋์ ์ผํ๋ฅผ ๋จ๊ธฐ๊ณ ์๊ฐ ๊ฐ์์ ์ด๋ฅผ ์๋ตํ ์ ์๋ ๊ธฐ๋ฅ๋ ์ถ๊ฐ๋์์ต๋๋ค. ์ด์ `serde = { version = "1.0", features = ["derive"] }`๋ `serde = { version = "1.0", features = ["derive"], }`๋ก ๋์ฒดํ ์ ์์ต๋๋ค.
- API์ ์๋ก์ด ๋ถ๋ถ์ด ์์ ํ๋ ํน์ฑ์ ๋ฉ์๋ ๋ฐ ๊ตฌํ์ ํฌํจํ์ฌ ์์ ์ ์ธ ๋ฒ์ฃผ๋ก ์ด๋๋์์ต๋๋ค.
- <[T]>::array_windows
- <[T]>::element_offset
- ๋ ์ด์ง์ ::๊ฒ
- LazyCell::get_mut
- LazyCell::force_mut
- ๋ ์ด์ง๋ฝ::๊ฒ
- LazyLock::get_mut
- LazyLock::force_mut
- impl TryFrom ์ฌ์ฉ
- std::iter::Peekable::next_if_map
- std::iter::Peekable::next_if_map_mut
- x86 avx512fp16 ๋ช ๋ น์ด์ ๋ด๋ถ ๊ตฌ์กฐ
- AArch64 NEON fp16 ๋ช ๋ น์ด์ ๋ด๋ถ ๊ตฌ์กฐ
- f32::consts::EULER_GAMMA
- f64::consts::EULER_GAMMA
- f32::consts::๊ณจ๋ _๋น์จ
- f64::consts::๊ณจ๋ _๋น์จ
- "const" ๊ธฐํธ๋ ํจ์์์ ์ฌ์ฉ๋ฉ๋๋ค:
- f32::mul_add
- f64::mul_add
- riscv64im-unknown-none-elf ํ๋ซํผ์ด ์ง์ ๋ ๋ฒจ 3์ผ๋ก ์ํฅ ์กฐ์ ๋์์ต๋๋ค. ์ง์ ๋ ๋ฒจ 3์๋ ๊ธฐ๋ณธ ์ง์์ด ํฌํจ๋์ง๋ง ์๋ํ๋ ํ ์คํธ, ๊ณต์ ๋น๋ ๋ฆด๋ฆฌ์ค ๋๋ ๋น๋ ๊ฒ์ฆ์ ํฌํจ๋์ง ์์ต๋๋ค.
๋ํ, ์ต๊ทผ ๋ฐํ๋ Rust ๊ด๋ จ ํ๋ก์ ํธ ๋ฐ ์ด๋ฒคํธ๋ค์ ์๊ฐํด ๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
- Rust ์ปดํ์ผ๋ฌ์ Sony PlayStation 1 ํ๋ซํผ ์ง์์ ๊ตฌํํ๊ณ Apple Silicon ์นฉ์ด ํ์ฌ๋ ์ปดํจํฐ์ FreeBSD๋ฅผ ํฌํ
ํ Ayrton Muรฑoz๊ฐ FreeBSD์ฉ ์ปค๋ ๊ตฌ์ฑ ์์ ๋ฐ ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ Rust๋ก ์์ฑํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. FreeBSD ์ปค๋์์ Rust ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ KPI(์ปค๋ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค) ๋ฐ์ธ๋ฉ ์ธํธ๊ฐ ํ
์คํธ์ฉ์ผ๋ก ์ ๊ณต๋์์ผ๋ฉฐ, ์ด ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ ์ ์๋ virtio ์ฌ์ด๋ ๋๋ผ์ด๋ฒ(virtio_snd), M2 MacBook ํค๋ณด๋์ฉ DockChannel HID ๋๋ผ์ด๋ฒ, ๊ทธ๋ฆฌ๊ณ Apple Silicon ์นฉ์ด ํ์ฌ๋ Mac ์ปดํจํฐ ํ์ ์์คํ
์ฉ ์ ์์ค ๋๋ผ์ด๋ฒ๋ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
Rust ๋ฐ์ธ๋ฉ ๊ฐ๋ฐ์ 2024๋ ๋ง๋ถํฐ ์งํ๋์ด ์์ต๋๋ค. ํ์ฌ ๋ฐ์ธ๋ฉ์ C-KPI์ ์ผ๋ถ๋ง ๊ตฌํํ๊ณ ์์ผ๋ฉฐ ๋ถ์์ ํ ์ํ์ด์ง๋ง, ํฅํ C ์ธ์ด์ฉ ์ ์ฌ ์ธํฐํ์ด์ค์ ๊ฐ์ ์์ค์ ์์ ์ฑ์ ํ๋ณดํ ๊ณํ์ ๋๋ค. ์์๋ก ์ ์๋ virtio_snd ๋๋ผ์ด๋ฒ๋ QEMU์์ ์์ ์ ์ฌ์ํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. 2026๋ ๊น์ง Rust ๋ฐ์ธ๋ฉ์ด ์ถฉ๋ถํ ์์ ํ๋์ด ๊ด์ฌ ์๋ ๊ฐ๋ฐ์๋ค์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
- NetBSD ๊ฐ๋ฐ์ ๋ฒ ๋ ์ง๊ฑฐํธ๋ NetBSD ์ปค๋์ Rust ์ง์์ด ํฌํจ๋์ง ์์ ์ด์ ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฌํญ๋ค์ ์ ์ํ์ต๋๋ค. NetBSD๋ Rust๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ํคํ ์ฒ๋ฅผ ์ง์ํฉ๋๋ค. pkgsrc์ ์๋ ๊ธฐ์กด Rust ํด์ฒด์ธ์ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋นํ ๋ ธ๋ ฅ์ด ํ์ํ๋ฉฐ, ์ด๋ฅผ ์ง์ํ๋ ๊ฐ๋ฐ์๋ ์์์ ๋ถ๊ณผํฉ๋๋ค. Rust์ ๋ํ ์ปค๋ ์ง์์ ์ํด์๋ Rust ์ปดํ์ผ๋ฌ๊ฐ ๊ธฐ๋ณธ ์์คํ ์ ํฌํจ๋์ด์ผ ํฉ๋๋ค. NetBSD์์ Rust๋ฅผ ๋ถํธ์คํธ๋ํํ๋ ๋ฐ์๋ ๋ ๊ฑฐ์ ๋ฐ์ด๋๋ฆฌ ํจํค์ง๊ฐ ์ฌ์ฉ๋๋๋ฐ, ์ด๋ ์์ค ์ฝ๋๋ก ๋ฐฐํฌ๋๋ ๋ ๋ฆฝ ์คํํ ๋ฐฐํฌํ์๋ ์ ํฉํ์ง ์์ต๋๋ค. Rust์ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ NetBSD์ ๋ ๊ฑฐ์ ๋ธ๋์น ๊ฐ๋ฐ ๋ฐ ์ง์ ์ฃผ๊ธฐ์ ํธํ๋์ง ์์ต๋๋ค(์๋ฅผ ๋ค์ด, 2020๋ ์ ์ถ์๋ NetBSD 9๋ ๊ณ์ ์ง์๋๊ณ ์๋๋ฐ, ์ด๋ฅผ ์ํด์๋ 6๋ ๋ Rust ์ปดํ์ผ๋ฌ๋ฅผ ๋ฐฐํฌํ๊ณ ์ง์ํด์ผ ํฉ๋๋ค).
- ะะฟัะฑะปะธะบะพะฒะฐะฝ ะฒัะฟััะบ ะฒัััะฐะธะฒะฐะตะผะพะน ะฒ ะฟัะธะปะพะถะตะฝะธั ะกะฃะะ Turso 0.5, ะฝะฐะฟะธัะฐะฝะฝะพะน ะฝะฐ ัะทัะบะต Rust ะธ ัะพะฒะผะตััะธะผะพะน ั SQLite ะฝะฐ ััะพะฒะฝะต ะดะธะฐะปะตะบัะฐ SQL, ัะพัะผะฐัะฐ ัะฐะนะปะพะฒ ะะ ะธ C API. ะะท ัะฐััะธัะตะฝะฝัั ะฒะพะทะผะพะถะฝะพััะตะน ะพัะผะตัะฐะตััั ะผะตั ะฐะฝะธะทะผ CDC (Change data capture) ะดะปั ะพััะปะตะถะธะฒะฐะฝะธั ะธะทะผะตะฝะตะฝะธั ะะ ะฒ ัะตะฐะปัะฝะพะผ ะฒัะตะผะตะฝะธ, ะธัะฟะพะปัะทะพะฒะฐะฝะธะต io_uring ะดะปั ะฐัะธะฝั ัะพะฝะฝะพะณะพ ะฒะฒะพะดะฐ/ะฒัะฒะพะดะฐ ะฒ Linux, ะฟะพะดะดะตัะถะบะฐ ะฒะตะบัะพัะฝะพะณะพ ะฟะพะธัะบะฐ, ะฝะฐะปะธัะธะต ะฒััะฐะถะตะฝะธั ALTER ะดะปั ะธะทะผะตะฝะตะฝะธั ัั ะตะผั ะะ, ะฒะพะทะผะพะถะฝะพััั ัะธััะพะฒะฐะฝะธั ะดะฐะฝะฝัั ะฒ ะะ, ัะตะถะธะผ ะธะฝะบัะตะผะตะฝัะฐะปัะฝัั ะฒััะธัะปะตะฝะธะน, ะบะพะฝััััะบัะธั ยซBEGIN CONCURRENTยป.
- Rust ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ GPU ๊ธฐ๋ฐ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ํ๋ก์ ํธ์ ๋๋ค.
- Emuko โ ัะผัะปััะพั RISC-V, ะฝะฐะฟะธัะฐะฝะฝัะน ะฝะฐ Rust, ัะฟะพัะพะฑะฝัะน ะทะฐะณััะถะฐัั Linux, ะฟะพะดะดะตัะถะธะฒะฐััะธะน JIT-ะบะพะผะฟะธะปััะธั, ัะฟะพัะพะฑะฝัะน ัะพั ัะฐะฝััั ะธ ะฒะพัััะฐะฝะฐะฒะปะธะฒะฐัั ัะฝะฐะฟัะพัั ัะพััะพัะฝะธั.
- RustConn(flatpak)์ SSH, RDP, VNC, SPICE, Telnet, Serial, Kubernetes, Zero Trust ๋ฐ SFTP๋ฅผ ์ง์ํ๋ ๋ค๋ฅธ ํธ์คํธ์์ ์ธ๋ถ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๋ ๊ทธ๋ํฝ ์ธํฐํ์ด์ค์ ๋๋ค. ์ด ์ฝ๋๋ GTK4์ Wayland๋ฅผ ์ฌ์ฉํ์ฌ Rust๋ก ์์ฑ๋์์ต๋๋ค.
- zlib-rs 0.6 ํ๋ก์ ํธ์ ์๋ก์ด ๋ธ๋์น๊ฐ ์ถ์๋์์ต๋๋ค. ์ด๋ zlib C API์ ์๋ฒฝํ๊ฒ ํธํ๋๋ ์ต์ด์ ์์ ๋ฒ์ ์ผ๋ก, zlib์ ํฌ๋ช ํ๊ฒ ๋์ฒดํ ์ ์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ zlib ๋ฐ์ดํฐ ์์ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ ํ ๋์์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. zlib-rs ํ๋ก์ ํธ๋ zlib์ ๊ณ ์ฑ๋ฅ ๋ณํ์ ๊ฐ๋ฐํ๋ zlib-ng ํ๋ก์ ํธ๋ฅผ ์ผ๋์ ๋๊ณ ๊ฐ๋ฐ์ด ์งํ๋๊ณ ์์ต๋๋ค.
- VCAD ํ๋ก์ ํธ๋ Rust ์ธ์ด๋ก ์์ฑ๋๊ณ MCP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ AI ์์ด์ ํธ์ ํตํฉ๋ ํ๋ผ๋ฉํธ๋ฆญ ์ปดํจํฐ ์ง์ ์ค๊ณ(CAD) ์์คํ ๊ฐ๋ฐ์ ๋๋ค. 3D ๋ชจ๋ธ๋ง, ์๋ฎฌ๋ ์ด์ , 2D ์ค์ผ์น, ๋ถํ ์กฐ๋ฆฝ, STEP ํ์ผ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ STL/GLB/STEP/DXF ํ์ผ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ง์ํฉ๋๋ค.
- Rust ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ Mistral Voxtral Mini 4B ์ค์๊ฐ AI ๋ชจ๋ธ๊ณผ Burn ๋จธ์ ๋ฌ๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ์์ฑ ์ธ์ ์์คํ ์ด ๊ณต๊ฐ๋์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ ๋ผ์ด๋ธ ์คํธ๋ฆฌ๋ฐ ์์์ ์์ฑ ์ธ์ ๋ฐ ํ ์คํธ ๋ณํ์ ์ค์ ์ ๋๊ณ ์์ต๋๋ค.
- c2rust 0.22 ํดํท์ด ์ถ์๋์์ต๋๋ค. ์ด ํดํท์ C ์ฝ๋(C99)๋ฅผ ์๋ C ์ฝ๋์ ๊ตฌ์กฐ์ ์ผ๋ก ์ ์ฌํ unsafe Rust ํํ์ผ๋ก ๋ณํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ํ๋ ์์ํฌ๋ ๊ด์ฉ์ ์ธ Rust ์ฝ๋๋ก ์ ์ง์ ์ผ๋ก ์ ํํ๊ณ unsafe ๋ธ๋ก์ ์ ๊ฑฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru
