Uitgave van Pingora 0.4, een framework voor het maken van netwerkdiensten

Cloudflare heeft de release van framework Pingora 0.4 aangekondigd, ontworpen voor de ontwikkeling van veilige, hoogperformante netwerkservices in Rust. Proxy's gebouwd met Pingora worden al meer dan twee jaar gebruikt in het content delivery-netwerk van Cloudflare in plaats van nginx en verwerken meer dan 40 miljoen verzoeken per seconde. De code is geschreven in Rust en gepubliceerd onder de Apache 2.0-licentie.

Belangrijkste kenmerken van Pingora:

  • Ondersteuning voor HTTP/1 en HTTP/2 (HTTP/3 is gepland) en de mogelijkheid om diensten te creĆ«ren die hun eigen protocollen of UDP/TCP gebruiken.
  • Ondersteuning voor multithreading en asynchrone verwerking van verzoeken.
  • Mogelijkheid om callback-handlers en filters toe te voegen die verschillende stadia van het verwerking van verzoeken kunnen beheren, evenals verzoeken en antwoorden kunnen wijzigen, omleiden, blokkeren en loggen.
  • Proxy-ondersteuning voor gRPC en WebSocket.
  • Plug-in load balancers.
  • Mogelijkheid om configuraties te wijzigen zonder herstart.
  • Ondersteuning voor het updaten van de toepassingscode zonder verbindingen te breken.
  • Hulpmiddelen voor failover bij storingen.
  • Integratie met verschillende monitoring- en loggingsystemen (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Ondersteuning voor TLS-encryptie (gebruikmakend van OpenSSL, BoringSSL of Rustls).
  • Klaar-to-go Rust-pakketten voor het creĆ«ren van HTTP-proxy's, werken met netwerkprotocollen, het parseren van HTTP-headers, het bijhouden en limiteren van verkeer, load balancing, werken met de gedistribueerde hash-tabel Ketama, onderhouden van cache in het geheugen en asynchrone verwerking van timeouts.

Onder de wijzigingen in de nieuwe versie:

  • InitiĆ«le ondersteuning voor de cryptografische bibliotheek Rustls, die cryptoprovideurs gebruikt op basis van de bibliotheken aws-lc-rs en ring, gebaseerd op BoringSSL.
  • Experimentele ondersteuning voor het Windows-platform.
  • Dummy TLS-modus, die kan worden toegepast in situaties waarin een echte TLS-implementatie niet kan worden gebruikt.
  • Ondersteuning toegevoegd voor de gRPC-web module voor het vertalen van gRPC-web klantverzoeken naar verzoeken aan server gRPC.
  • De mogelijkheid om H2C-verbindingen (HTTP/2 bovenop ruwe TCP, zonder encryptie) en HTTP/1 op dezelfde netpoort te verwerken is verstrekt.
  • De mogelijkheid toegevoegd om eigen implementaties van de functie connect() aan te sluiten om het gedrag bij het opzetten van een netwerkverbinding te wijzigen, bijvoorbeeld voor het instellen van extra opties voor de socket of het simuleren van fouten tijdens tests.
  • De mogelijkheid verstrekt om informatieve antwoorden bij proxieĆ«n te negeren, zoals antwoorden met de header 'Expect: 100-continue'.
  • Ondersteuning toegevoegd voor het decomprimeren van antwoorden die gzip-gecomprimeerd zijn.
  • De status van de backend wordt in aanmerking genomen voor monitoring.
  • De mogelijkheid toegevoegd om te binden aan een reeks lokale poorten.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster