pub fn main() !void { var gpa = std.heap.GeneralPurposeAllocator(.{ .thread_safe = true, }){}; const allocator = gpa.allocator(); var router = zap.Router.init(allocator, .{ .not_found = not_found, }); defer router.deinit(); var web_router = WebRouter.init(allocator); try router.handle_func("/home", &web_router, &WebRouter.home); try router.handle_func("/index", &web_router, &WebRouter.index); try router.handle_func("/", &web_router, &WebRouter.index); var listener = zap.HttpListener.init(.{ .port = 3000, .on_request = router.on_request_handler(), .log = true, .max_clients = 100000, .public_folder = "src/public" }); try listener.listen(); std.debug.print("Listening on 0.0.0.0:3000\n", .{}); zap.start(.{ .threads = 2, .workers = 1, // 1 worker enables sharing state between threads }); }