ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ NGINX ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» инструмСнтарий для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π° языкС Rust

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° NGINX прСдставили инструмСнтарий ngx-rust, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΊ http-сСрвСру ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ прокси NGINX Π½Π° языкС программирования Rust. Код ngx-rust распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0 ΠΈ ΠΏΠΎΠΊΠ° находится Π² состоянии Π±Π΅Ρ‚Π°-вСрсии.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ инструмСнтарий развивался ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для форсирования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Istio-совмСстимого Service mesh для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Kubernetes, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… NGINX. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π΅ Π²Ρ‹ΡˆΠ΅Π» Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° ΠΈ нСсколько Π»Π΅Ρ‚ находился Π² стагнации, Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² процСссС создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ привязок Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ сообщСством Π² сторонних ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй NGINX Π½Π° языкС Rust.

Π§Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ F5 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ написаниС спСциализированного модуля ΠΊ NGINX для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ своих сСрвисов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык Rust для сниТСния риска ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Ρ‘Π½ Π°Π²Ρ‚ΠΎΡ€ ngx-rust, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ€ΡƒΡ‡Π΅Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ инструмСнтарий для создания ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊ NGINX Π½Π° языкС Rust.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π²Π° crate-ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

  • nginx-sys — Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ привязок Π½Π° основС исходных тСкстов NGINX. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠ΄ NGINX ΠΈ всС связанныС с Π½ΠΈΠΌ зависимости, послС Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ bindgen для формирования обвязок Π½Π°Π΄ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями (FFI, foreign function interface).
  • ngx — прослойка для обращСния ΠΊ Π‘ΠΈ-функциям ΠΈΠ· ΠΊΠΎΠ΄Π° Rust, API ΠΈ систСма рСэкспорта обвязок, созданных ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ nginx-sys.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ