NGINX-projektet har udgivet et værktøjssæt til udvikling af moduler i Rust-sproget

Udviklerne af NGINX-projektet præsenterede ngx-rust-værktøjssættet, som giver dig mulighed for at oprette moduler til NGINX http-serveren og multi-protokol-proxy i Rust-programmeringssproget. ngx-rust-koden distribueres under Apache 2.0-licensen og er i øjeblikket i beta.

Oprindeligt blev værktøjssættet udviklet som et projekt for at accelerere udviklingen af ​​et Istio-kompatibelt Service-mesh til Kubernetes-platformen, der kører oven på NGINX. Produktet gik aldrig ud over prototypen og stagnerede i flere år, men de eksempelbindinger, der blev offentliggjort under prototypeprocessen, blev brugt af fællesskabet i tredjepartsprojekter for at udvide mulighederne for NGINX i Rust.

Efter nogen tid havde F5-virksomheden brug for at skrive et specialiseret modul til NGINX for at beskytte dets tjenester, hvor det ønskede at bruge Rust-sproget for at reducere risikoen for fejl, når man arbejdede med hukommelse. For at løse problemet blev forfatteren af ​​ngx-rust hentet ind, som fik til opgave at udvikle nye og forbedrede værktøjer til at lave moduler til NGINX på Rust-sproget.

Værktøjssættet indeholder to kassepakker:

  • nginx-sys - Bindingsgenerator baseret på NGINX kildekode. Værktøjet indlæser NGINX-koden og alle dens tilknyttede afhængigheder og bruger derefter bindgen til at skabe bindinger over de originale funktioner (FFI, fremmedfunktionsgrænseflade).
  • ngx - et lag til at få adgang til C-funktioner fra Rust-kode, en API og et system til reeksport af bindinger oprettet ved hjælp af nginx-sys.

Kilde: opennet.ru

Tilføj en kommentar