Chromium Rust ์ •์ฑ…

Chromium์—์„œ๋Š” ์•„์ง ํผ์ŠคํŠธ ํŒŒํ‹ฐ Rust๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ, Chromium์˜ Area Tech Leads์—์„œ ์Šน์ธํ•œ ๋“œ๋ฌธ ๊ฒฝ์šฐ๋Š” ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.

์„œ๋“œ ํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๊ด€ํ•œ Chromium์˜ ์ •์ฑ…์€ ์—ฌ๊ธฐ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Rust๋Š” ์„ฑ๋Šฅ์ด๋‚˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ์ตœ์ƒ์˜ ์˜ต์…˜์ธ ๊ฒฝ์šฐ ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์„œ๋“œ ํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

C/C++ API๋ฅผ ์ง์ ‘ ๋…ธ์ถœํ•˜๋Š” Rust ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ทน์†Œ์ˆ˜์ด๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” ์†Œ๋Ÿ‰์˜ ํผ์ŠคํŠธ ํŒŒํ‹ฐ ๊ธ€๋ฃจ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

RustExistingcrateLanguageCrateboundaryAPIExistingChromiumChromiumRustRustC++C++wrapper

ํŠน์ • ์„œ๋“œ ํŒŒํ‹ฐ ํฌ๋ ˆ์ดํŠธ์˜ ํผ์ŠคํŠธ ํŒŒํ‹ฐ Rust ๊ธ€๋ฃจ ์ฝ”๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ third_party/rust/<crate>/<version>/wrapper์— ๋ณด๊ด€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์˜ค๋Š˜ ๊ณผ์ •์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  • ์„œ๋“œ ํŒŒํ‹ฐ Rust ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(โ€˜cratesโ€™) ๊ฐ€์ ธ์˜ค๊ธฐ
  • Chromium C++์—์„œ ์ด๋Ÿฌํ•œ ํฌ๋ ˆ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธ€๋ฃจ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์ด ์ •์ฑ…์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๊ต์œก ๊ณผ์ •๋„ ์ด์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.