Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° 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