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
});
}