Bol zverejnený kompaktný HTTP server hinsightd, ktorý vyniká použitím rozhrania asynchrónneho vstupu/výstupu io_uring poskytovaného v jadre Linux. Server podporuje protokol HTTP/1.1 a je navrhnutý tak, aby málo spotrebovával zdroje, pričom poskytuje požadovanú funkcionalitu. Napríklad, hinsightd podporuje TLS, reverzné proxy (rproxy), caching dynamicky generovaného obsahu v miestnom FS, kompresiu odosielaných dát na požiadanie, reštart bez prerušenia existujúcich spojení, pripojenie dynamických spracovateľov požiadaviek pomocou mechanizmov FastCGI a CGI. Kód projektu je napísaný v programovacom jazyku C a je distribuovaný pod licenciou BSD.
Na spracovanie konfigurácie, písanie doplnkov a vytváranie spracovateľov požiadaviek je možné používať jazyk Lua, pričom takéto spracovatelia môžu byť definované priamo v súbore konfigurácie servera. V podobe pluginov sú implementované funkcie ako zmena formátu záznamu v logu, priradenie jednotlivých logov k virtuálnym hostiteľom, určenie stratégie vyváženia záťaže, HTTP autentifikácia, prepísanie URL a vykonávanie plánovaných úloh podľa rozvrhu (napríklad, aktualizácia certifikátov Let’s Encrypt).
Spolu s serverom sa dodáva knižnica na integráciu funkcií hinsightd do svojich aplikácií. Hinsightd tiež obsahuje integrovanú funkcionalitu na odosielanie HTTP požiadaviek z príkazového riadku, napríklad na načítanie stránky možno vykonať príkaz „hinsightd -d URL“. Server je veľmi kompaktný a po skompilovaní zaberá približne 200 kB (100 kB spustiteľný súbor a 100 kB zdieľaná knižnica). Medzi externé závislosti patrí iba libc, lua, liburing a zlib, ako aj voliteľne openssl/libressl a ffcall.
Medzi plány ďalšieho vývoja sa spomína možnosť uchovávania komprimovaných súborov v cache, izolácia sandboxu na základe filtrovania systémových volaní a používanie priestorov názvov, správa šírky pásma (traffic shaping), viacvláknosť, zlepšené spracovanie chýb a definovanie virtuálnych hostiteľov na základe masiek.
Výsledky syntetického testovania výkonu (bez optimalizácií v konfigurácii, ako je) s utilitou ab pri spustení 250 a 500 (v zátvorkách) paralelných požiadaviek („ab -k -c 250 -n 10000 http://localhost/“):
- hinsightd/0.9.17 — 63035.01 požiadaviek za sekundu (54984.63)
- lighttpd/1.4.67 — 53693.29 požiadaviek za sekundu (1613.59)
- Apache/2.4.54 — 37474.10 požiadaviek za sekundu (34305.55)
- Caddy/2.6.2 — 35412.02 požiadaviek za sekundu (33995.57)
- nginx/1.23.2 — 26673.64 požiadaviek za sekundu (26172.73)
Zdroj: opennet.ru
