<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Http on Igor Mihajlov | Go &amp; TypeScript Backend Engineer</title><link>https://igormihajlov.com/tags/http/</link><description>Recent content in Http on Igor Mihajlov | Go &amp; TypeScript Backend Engineer</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 24 Jun 2026 17:14:54 +0200</lastBuildDate><atom:link href="https://igormihajlov.com/tags/http/index.xml" rel="self" type="application/rss+xml"/><item><title>huv</title><link>https://igormihajlov.com/projects/huv/</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0100</pubDate><guid>https://igormihajlov.com/projects/huv/</guid><description>&lt;p&gt;A small C HTTP/1.1 server library built on &lt;a href="https://libuv.org/"&gt;libuv&lt;/a&gt; and &lt;a href="https://github.com/nodejs/llhttp"&gt;llhttp&lt;/a&gt;, with optional TLS via &lt;a href="https://www.trustedfirmware.org/projects/mbed-tls/"&gt;mbedTLS&lt;/a&gt; and multi-worker scaling via &lt;code&gt;SO_REUSEPORT&lt;/code&gt; + &lt;code&gt;fork()&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Non-blocking&lt;/strong&gt; — single-threaded event loop per worker&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Middleware + routing&lt;/strong&gt; — Express-style &lt;code&gt;use()&lt;/code&gt; + &lt;code&gt;get/post/...&lt;/code&gt; with &lt;code&gt;:param&lt;/code&gt; captures and &lt;code&gt;405 + Allow&lt;/code&gt; for unregistered methods on known paths&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP/HTTPS on one process&lt;/strong&gt; — plain HTTP, TLS, or both in the same worker sharing one router&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-worker&lt;/strong&gt; — set &lt;code&gt;workers=N&lt;/code&gt; to fork N processes that share the listen port, with the kernel load-balancing incoming connections&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tech-stack"&gt;Tech Stack&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;C&lt;/strong&gt; — core implementation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;libuv&lt;/strong&gt; — non-blocking event loop&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;llhttp&lt;/strong&gt; — HTTP parsing (the parser behind Node.js)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;mbedTLS&lt;/strong&gt; — optional TLS support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMake&lt;/strong&gt; — build system&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="links"&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/irog-c/huv"&gt;GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>