Mozilla ํ๋ก์ ํธ์ ์ํด ์ค๋ฆฝ๋์์ง๋ง ํ์ฌ๋ ๋ ๋ฆฝ์ ์ธ ๋น์๋ฆฌ ์กฐ์ง์ธ Rust Foundation์ ํ์์ผ๋ก ๊ฐ๋ฐ๋ Rust 1.69 ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ถ์๊ฐ ๋ฐํ๋์์ต๋๋ค. ์ด ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ค์ ์ ๋๊ณ ๊ฐ๋น์ง ์์ง๊ธฐ ๋ฐ ๋ฐํ์(๋ฐํ์์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ณธ ์ด๊ธฐํ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ก ์ถ์๋จ)์ ์ฌ์ฉ์ ํผํ๋ฉด์ ๋์ ์์ ๋ณ๋ ฌ์ฑ์ ๋ฌ์ฑํ ์ ์๋ ์๋จ์ ์ ๊ณตํฉ๋๋ค.
Rust์ ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ํฌ์ธํฐ๋ฅผ ์กฐ์ํ ๋ ๊ฐ๋ฐ์๋ฅผ ์ค๋ฅ๋ก๋ถํฐ ๋ณดํธํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ํด์ ๋ ํ ์ก์ธ์ค, null ํฌ์ธํฐ ์ญ์ฐธ์กฐ, ๋ฒํผ ์ค๋ฒ๋ฐ ๋ฑ๊ณผ ๊ฐ์ ์ ์์ค ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ, ๋น๋ ์ ๊ณต ๋ฐ ์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํด ํ๋ก์ ํธ๋ Cargo ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ๊ฐ๋ฐํฉ๋๋ค. crates.io ์ ์ฅ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์คํ ์ ์ํด ์ง์๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ปดํ์ผ ์๊ฐ์ ์ฐธ์กฐ ํ์ธ, ๊ฐ์ฒด ์์ ๊ถ ์ถ์ , ๊ฐ์ฒด ์๋ช (๋ฒ์) ์ถ์ ๋ฐ ์ฝ๋ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ์ ํ์ฑ ํ๊ฐ๋ฅผ ํตํด Rust์์ ์ ๊ณต๋ฉ๋๋ค. Rust๋ ๋ํ ์ ์ ์ค๋ฒํ๋ก์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ ์ ๋ณ์ ๊ฐ์ ํ์ ์ด๊ธฐํ๊ฐ ํ์ํ๋ฉฐ, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ฅ๋ฅผ ๋ ์ ์ฒ๋ฆฌํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ ์ฐธ์กฐ ๋ฐ ๋ณ์ ๊ฐ๋ ์ ์ ์ฉํ๊ณ , ๊ฐ๋ ฅํ ์ ์ ์ ํ ์ง์ ์ ์ ๊ณตํ์ฌ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํฉ๋๋ค.
์ฃผ์ ํ์ :
- ํ๋ฌผ ํจํค์ง ๊ด๋ฆฌ์๋ ์๋์ผ๋ก ํด๊ฒฐ๋ ์ ์๋ ๊ฒฝ๊ณ ๊ฐ์ง์ "cargo fix" ๋๋ "cargo Clippy -fix" ์คํ์ ์ํ ์ ์ ํ ๊ถ์ฅ ์ฌํญ์ ์ถ๋ ฅ์ ๊ตฌํํฉ๋๋ค. ๊ฒฝ๊ณ : ์ฌ์ฉ๋์ง ์์ ๊ฐ์ ธ์ค๊ธฐ: 'std::hash::Hash' โ> src/main.rs:1:5 | 1 | std::hash::Hash๋ฅผ ์ฌ์ฉํ์ธ์. | ^^^^^^^^^^^^^^^^^ | = ์ฐธ๊ณ : '#[warn(unused_imports)]'๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ ธ ์์ต๋๋ค. ๊ฒฝ๊ณ : 'foo' (bin "foo")๊ฐ 1๊ฐ์ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํ์ต๋๋ค(1๊ฐ์ ์ ์์ ์ ์ฉํ๋ ค๋ฉด 'cargo fix โbin "foo"'๋ฅผ ์คํํ์ธ์).
- Cargo๋ "cargo install" ๋ช ๋ น์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๋ ค๊ณ ํ ๋ "cargo add" ๋ช ๋ น์ ์ฌ์ฉํ๊ธฐ ์ํ ๊ถ์ฅ ์ถ๋ ฅ์ ์ถ๊ฐํ์ต๋๋ค.
- ์ปดํ์ผ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ๋น๋ ์คํฌ๋ฆฝํธ์ ๋๋ฒ๊น ์ ๋ณด ํฌํจ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ง๋์์ต๋๋ค. ๋น๋ ์คํฌ๋ฆฝํธ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋ฉด ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋์ ๋๋ ์ฐจ์ด๊ฐ ๋ฐ์ํ์ง ์์ง๋ง, ์คํจ๊ฐ ๋ฐ์ํ๋ฉด ์ญ์ถ์ ๋คํ์ ํฌํจ๋๋ ์ ๋ณด๊ฐ ์ค์ด๋ญ๋๋ค. Cargo.toml์ ์ด์ ๋์์ ๋๋๋ฆฌ๋ ค๋ฉด ๋ค์์ ์ถ๊ฐํด์ผ ํฉ๋๋ค: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- API์ ์๋ก์ด ๋ถ๋ถ์ด ์์ ํ๋ ํน์ฑ์ ๋ฉ์๋ ๋ฐ ๊ตฌํ์ ํฌํจํ์ฌ ์์ ์ ์ธ ๋ฒ์ฃผ๋ก ์ด๋๋์์ต๋๋ค.
- CStr::from_bytes_until_nul
- ์ฝ์ด::ffi::FromBytesUntilNulError
- ์์ ๋์ ๋ชจ๋ ์ปจํ
์คํธ์์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ ๊ฒฐ์ ํ๋ "const" ์์ฑ์ ํจ์์์ ์ฌ์ฉ๋ฉ๋๋ค.
- ์์ผ์ฃผ์::์
- ์์ผ์ฃผ์::ip
- ์์ผ์ฃผ์::ํฌํธ
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4::์ ํญ๋ชฉ
- SocketAddrV4::ip
- SocketAddrV4::ํฌํธ
- SocketAddrV6::์ ํญ๋ชฉ
- SocketAddrV6::ip
- SocketAddrV6::ํฌํธ
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- ์ปดํ์ผ๋ฌ ์ธ์์ true ๋ฐ false ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru