W ramach projektu NGINX opublikowano zestaw narzędzi do tworzenia modułów w języku Rust

Twórcy projektu NGINX zaprezentowali zestaw narzędzi ngx-rust, który pozwala na tworzenie modułów dla serwera http NGINX i wieloprotokołowego proxy w języku programowania Rust. Kod ngx-rust jest rozpowszechniany na licencji Apache 2.0 i obecnie znajduje się w fazie beta.

Początkowo zestaw narzędzi został opracowany jako projekt mający na celu przyspieszenie rozwoju siatki usług zgodnej z Istio dla platformy Kubernetes działającej na platformie NGINX. Produkt nigdy nie wyszedł poza prototyp i pozostawał w stagnacji przez kilka lat, ale przykładowe wiązania opublikowane podczas procesu prototypowania zostały wykorzystane przez społeczność w projektach stron trzecich w celu rozszerzenia możliwości NGINX w Rust.

Po pewnym czasie firma F5 potrzebowała napisać dla NGINX specjalistyczny moduł chroniący swoje usługi, w którym chciała wykorzystać język Rust, aby zmniejszyć ryzyko błędów podczas pracy z pamięcią. Do rozwiązania problemu sprowadzono autora ngx-rust, któremu powierzono zadanie opracowania nowych i ulepszonych narzędzi do tworzenia modułów dla NGINX w języku Rust.

Zestaw narzędzi zawiera dwa pakiety skrzyń:

  • nginx-sys - Generator powiązań oparty na kodzie źródłowym NGINX. Narzędzie ładuje kod NGINX i wszystkie powiązane z nim zależności, a następnie używa bindgen do tworzenia powiązań z oryginalnymi funkcjami (FFI, interfejs funkcji obcych).
  • ngx - warstwa dostępu do funkcji C z kodu Rust, API i system do reeksportu powiązań utworzonych za pomocą nginx-sys.

Źródło: opennet.ru

Dodaj komentarz