Den kompakte HTTP-server hinsightd er blevet offentliggjort og er bemærkelsesværdig for sin brug af den asynkrone I/O-grænseflade io_uring, som er indbygget i Linux-kernen. Serveren understøtter protokollen HTTP/1.1 og er designet til lavt ressourceforbrug, samtidig med at den tilbyder eftertragtede funktioner. For eksempel understøtter hinsightd TLS, reverse proxy (rproxy), caching af dynamisk genereret indhold i det lokale filsystem, komprimering af leverede data on-the-fly, genstart uden at bryde etablerede forbindelser samt tilslutning af dynamiske forespørgselsbehandlere ved hjælp af mekanismerne FastCGI og CGI. Projektkoden er skrevet i C og distribueres under BSD-licensen.
Til behandling af konfiguration, skrivning af tilføjelser og oprettelse af forespørgselsbehandlere er der mulighed for at bruge Lua-sproget, og sådanne behandlere kan defineres direkte i filen serverkonfiguration. Funktionen i plugins omfatter ændring af logformatet, tilknytning af separate logs til virtuelle værter, bestemme load balancing-strategi, HTTP-godkendelse, URL-omskrivning og udførelse af planlagte opgaver efter tidsplan (f.eks. opdatering af Let’s Encrypt-certifikater).
Sammen med serveren leveres et bibliotek til integration af hinsightd-funktioner i egne applikationer. Hinsightd inkluderer også indbygget funktionalitet til at sende HTTP-forespørgsler fra kommandolinjen; for eksempel kan man for at indlæse en side bruge kommandoen «hinsightd -d URL». Serveren er meget kompakt og fylder i komprimeret form ca. 200KB (100KB eksekverbar fil og 100KB delt bibliotek). Blandt de eksterne afhængigheder findes kun libc, lua, liburing og zlib, samt valgfrit openssl/libressl og ffcall.
Blandt planer for fremtidig udvikling nævnes muligheden for at cache komprimerede filer, sandbox-isolering baseret på filtrering af systemopkald og brug af namespaces, kapacitetskontrol (traffic shaping), multitrådning, forbedret fejlhåndtering og definition af virtuelle værter baseret på masker.
Resultaterne af syntetisk ydeevnetest (uden optimeringer i konfigurationen som den er) med værktøjet ab ved kørsel af 250 og 500 (i parentes) parallelle forespørgsler (»ab -k -c 250 -n 10000 http://localhost/«):
- hinsightd/0.9.17 — 63035.01 forespørgsler pr. sekund (54984.63)
- lighttpd/1.4.67 — 53693,29 forespørgsler pr. sekund (1613,59)
- Apache/2.4.54 — 37474,10 forespørgsler pr. sekund (34305,55)
- Caddy/2.6.2 — 35412,02 forespørgsler pr. sekund (33995,57)
- nginx/1.23.2 — 26673,64 forespørgsler pr. sekund (26172,73)
Kilde: opennet.ru
