The URL features extension package is written in Zig.
Adding to build.zig
const url = b.dependency("url", .{
.target = target,
.optimize = optimize,
});
exe.root_module.addImport("url", url.module("url"));
Import it in your code:
const URL = @import("url");
var url = URL.init(.{});
const text = "http://example.com/path?query=1&query2=2";
const result = url.parse(text) catch return;
try testing.expectEqualStrings("http", result.scheme());
try testing.expectEqualStrings(
"example.com",
result.host(),
);
try testing.expectEqualStrings(
"/path",
result.path(),
);
try testing.expectEqualStrings("query=1&query2=2", result.query());
var querymap = result.queryMap();
try testing.expectEqualStrings("1", querymap.get("query").?);
try testing.expectEqualStrings("2", querymap.get("query2").?);
if (querymap.get("query3") != null) {
try testing.expect(false);
}