S'ha introduït el servidor HTTP hinsightd mitjançant el subsistema io_uring de Linux

S'ha publicat un servidor HTTP compacte, hinsightd, destacat pel seu ús de la interfície d'E/S asíncrona io_uring proporcionada al nucli de Linux. El servidor admet el protocol HTTP/1.1 i està dissenyat per a un baix consum de recursos alhora que ofereix una funcionalitat a demanda. Per exemple, hinsightd admet TLS, proxy inversa (rproxy), memòria cau contingut generat dinàmicament al sistema de fitxers local, compressió sobre la marxa de dades transmeses, reinici sense trencar les connexions establertes, connectar gestors de sol·licituds dinàmiques mitjançant mecanismes FastCGI i CGI. El codi del projecte està escrit en C i distribuït sota la llicència BSD.

Per processar la configuració, escriure addicions i crear controladors de sol·licituds, és possible utilitzar el llenguatge Lua, i aquests controladors es poden definir directament al fitxer de configuració del servidor. En forma de connectors, s'implementen funcions com canviar el format d'enregistrament del registre, enllaçar registres individuals amb amfitrions virtuals, definir una estratègia d'equilibri de càrrega, autenticació HTTP, reescriptura d'URL i realitzar treballs programats (per exemple, actualitzar els certificats Let's Encrypt).

El servidor inclou una biblioteca per integrar la funcionalitat hinsightd a les vostres aplicacions. Hinsightd també inclou una funcionalitat integrada per enviar sol·licituds HTTP des de la línia d'ordres, per exemple, podeu executar l'ordre "hinsightd -d URL" per carregar una pàgina. El servidor és molt compacte i ocupa uns 200 KB en forma compilada (fitxer executable de 100 KB i biblioteca compartida de 100 KB). Les dependències externes inclouen només libc, lua, liburing i zlib, i opcionalment openssl/libressl i ffcall.

Els plans per a un desenvolupament posterior inclouen la capacitat d'emmagatzemar fitxers comprimits a la memòria cau, l'aïllament del sandbox basat en el filtratge de trucades al sistema i l'ús d'espais de noms, la conformació del trànsit, el multiprocés, la gestió d'errors millorada i la detecció d'amfitrió virtual basada en màscares.

Resultats de les proves de rendiment sintètics (sense optimitzacions en la configuració tal qual) amb la utilitat ab quan s'executen sol·licituds paral·leles de 250 i 500 (entre parèntesis) ("ab -k -c 250 -n 10000 http://localhost/"):

  • hinsightd/0.9.17 – 63035.01 sol·licituds per segon (54984.63)
  • lighttpd/1.4.67 - 53693.29 sol·licituds per segon (1613.59)
  • Apache/2.4.54: 37474.10 sol·licituds per segon (34305.55)
  • Caddy/2.6.2: 35412.02 sol·licituds per segon (33995.57)
  • nginx/1.23.2 - 26673.64 sol·licituds per segon (26172.73)

Font: opennet.ru

Afegeix comentari