http.Server - std

Starting with release 0.12.0, a very simple implementation of http.Server has been introduced.

// reference: https://pismice.github.io/HEIG_ZIG/docs/web/std-http/
const std = @import("std");

pub fn main() !void {
    const addr = try std.net.Address.parseIp("127.0.0.1", 8080);
    var server = try std.net.Address.listen(addr, .{ .reuse_address = true });

    var buf: [65535]u8 = undefined;
    const conn = try server.accept();

    var client = std.http.Server.init(conn, &buf);

    while (client.state == .ready) {
        var request = client.receiveHead() catch |err| switch (err) {
            std.http.Server.ReceiveHeadError.HttpConnectionClosing => break,
            else => return err,
        };
        _ = try request.reader();

        try request.respond("Hello http.std!", .{});
    }
}

Note: The std implementation exhibits extremely poor performance. If you're planning beyond basic experimentation, consider utilizing alternative libraries such as:

Last change: 2025-02-08, commit: 6048579