๋น๋ ๊ท์น
์๋๋ก์ด๋ ๋น๋ ์์คํ (Soong)์ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๋ชจ๋์ ํตํด ๋ฌ์คํธ๋ฅผ ์ง์ํฉ๋๋ค:
Module Type | Description |
---|---|
rust_binary | ๋ฌ์คํธ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. |
rust_library | ๋ฌ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(rlibํน์ dylib)๋ฅผ ์์ฑํฉ๋๋ค. |
rust_ffi | cc ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋ C library (์ ์ ํน์ ๋์ )๋ฅผ ์์ฑํฉ๋๋ค. |
rust_proc_macro | proc-macro ๋ฅผ ๊ตฌํํ๋ ๋ฌ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ์ปดํ์ผ๋ฌ์ ํ๋ฌ๊ทธ์ธ์ผ๋ก ์๊ฐํด๋ ์ข์ต๋๋ค. |
rust_test | ํ์ค ๋ฌ์คํธ ํ ์คํธ ๋ฌ๋๋ฅผ ์ฌ์ฉํ๋ ํ ์คํธ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. |
rust_fuzz | libfuzzer ๋ฅผ ์ฌ์ฉํ์ฌ fuzz ๋ฐ์ด๋๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. |
rust_protobuf | ํ๋กํ ๋ฒํ(protobuf) ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๋ฌ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. |
rust_bindgen | C ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๋ฌ์คํธ ๋ฐ์ธ๋ฉ์ ์ ๊ณตํ๋ ๋ฌ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. |
๋ค์์ rust_binary
์ rust_library
๋ฅผ ์ดํด๋ด
๋๋ค.
๋ฐํ์๊ฐ ์ธ๊ธํ ์ ์๋ ์ถ๊ฐ ํญ๋ชฉ:
-
Cargo๋ ๋ค๊ตญ์ด ์ ์ฅ์์ ์ต์ ํ๋์ง ์์์ผ๋ฉฐ ์ธํฐ๋ท์์ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
-
Android์์๋ ๊ท์ ์, ๊ทธ๋ฆฌ๊ณ ๋น๋ ์๋๋ฅผ ์ํด, ํฌ๋ ์ดํธ๋ค์ด Android ์์ค์ฝ๋ ํธ๋ฆฌ ์์ ๋ฏธ๋ฆฌ ํฌํจ๋์ด ์์ด์ผ ํฉ๋๋ค. ๋น๋ ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์์ต๋๋ค. ๋ํ C/C++/Java ์ฝ๋์ ์ํธ ์ด์ฉ๋์ด์ผ ํฉ๋๋ค. Android ๋น๋ ์์คํ ์ธ Soong์ด ์ด ๊ณต๋ฐฑ์ ๋ฉ์๋๋ค.
-
Soong์ Blaze(google3์์ ์ฌ์ฉ๋จ)์ ์คํ์์ค ๋ณํ์ธ Bazel๊ณผ ๋ง์ด ๋น์ทํฉ๋๋ค.
-
Android, ChromeOS, Fuchsia๋ฅผ Bazel๋ก ์ ํํ ๊ณํ์ ๋๋ค.
-
Bazel๊ณผ ์ ์ฌํ ๋น๋ ๊ท์น์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋ชจ๋ Rust OS ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํฉ๋๋ค.
-
์ฌ๋ฏธ์๋ ์ฌ์ค: ์คํํธ๋ ์ ์บ๋ฆญํฐ ์ค ํ๋ช ์ธ ๋ฐ์ดํฐ(Data)๋ ์ฌ์ค Soong ํ์ ์ ์๋๋ก์ด๋(Android)์ ๋๋ค.