Pingora 0.4, võrguteenuste loomiseks mõeldud raamistik

Ettevõte Cloudflare avaldas Pingora 0.4 raamistikku, mis on mõeldud kõrge jõudlusega turvaliste võrguteenuste arendamiseks Rust keeles. Pingora abil loodud proxy on juba rohkem kui kaks aastat kasutusel Cloudflare'i sisuhalduse võrgus nginx-i asemel ning töötleb üle 40 miljoni päringu sekundis. Kood on kirjutatud Rust keeles ja avaldatud litsentsi all Apache 2.0.

Pingora põhifunktsionaalsused:

  • Toetab HTTP/1 ja HTTP/2 (plaanis on HTTP/3) ning võimaldab luua teenuseid, mis kasutavad oma protokolle või UDP/TCP.
  • Toetab mitme lõimega päringute töötlemist asünkroonses režiimis.
  • Pakub võimalust lisada callback-töötlejaid ja filtreid, mis võimaldavad juhtida erinevaid päringute töötlemise etappe, samuti muuta, suunata, blokeerida ja logida päringud ja vastused.
  • gRPC ja WebSocketi proxü.
  • Liidetavad koormuse tasakaalustajad.
  • Pakub võimalust muuta konfiguratsiooni ilma taaskäivituseta.
  • Toetab rakenduse koodi uuendamist ühenduste katkestamata.
  • Rikkete korral koormuse üleviimise tööriistad (failover).
  • Integreerimine erinevate jälgimis- ja logimisüsteemidega (Syslog, Prometheus, Sentry, OpenTelemetry).
  • TLS-krüpteerimise tugi (kasutatavad OpenSSL, BoringSSL või Rustls).
  • Valmis Rust-paketid HTTP-proxide loomiseks, võrguprotokollide haldamiseks, HTTP-peade analüüsimiseks, liikluse arvestamiseks ja piiramiseks, koormuse jagamiseks, jaotatud hash-tabeli Ketama kasutamiseks, vahemälu aktiivmälu hoidmiseks ja asünkroosse ajakauguse töötlemiseks.

Uue versiooni muudatuste hulgas on:

  • Algne tugi krüptograafia raamatukogule Rustls, mis kasutab krüptopakkujaid aws-lc-rs ja ring, mis põhinevad BoringSSL-il.
  • Eksperimentaalne tugi Windows platvormile.
  • Dummy TLS režiim, mida saab kasutada olukordades, kus ei ole võimalik kasutada tõelist TLS-i rakendust.
  • Lisatud tugi gRPC-web moodulile, et tõlkida gRPC-web klientide päringud. serverile gRPC.
  • Kasutajatele on võimaldatud H2C (HTTP/2 puhta TCP üle, ilma krüptimiseta) ja HTTP/1 ühenduste töötlemine ühel võrguporti.
  • Lisatud võimalus ühendada oma rakendusi connect() funktsioonile, et muuta võrguühenduse loomise käitumist, näiteks soketile täiendavate valikute seadmiseks või vigade simuleerimiseks testimise ajal.
  • Kasutajale on antud võimalus ignoreerida informatiivseid vastuseid looduses, nagu näiteks vastused päisega «Expect: 100-continue».
  • Lisatud tugi gzip-meetodil tihendatud vastuste väljavõtmiseks.
  • Rakendatud tagasiside arvestamine jälgimise eesmärkidel.
  • Lisatud võimalus siduda kohalike portide vahemikuga.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster