{"id":17448986,"url":"https://github.com/mookums/zzz","last_synced_at":"2025-03-03T15:02:39.284Z","repository":{"id":256478864,"uuid":"821579832","full_name":"mookums/zzz","owner":"mookums","description":"A framework for writing performant and reliable networked services.","archived":false,"fork":false,"pushed_at":"2025-02-23T23:24:30.000Z","size":951,"stargazers_count":454,"open_issues_count":8,"forks_count":14,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-02-24T00:24:45.682Z","etag":null,"topics":["http","http-server","https","tls","zig","zig-package","zzz"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mookums.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-28T21:52:37.000Z","updated_at":"2025-02-23T23:45:46.000Z","dependencies_parsed_at":"2024-10-25T10:08:33.779Z","dependency_job_id":"f1414e09-cea5-4726-ae77-00bb07c77124","html_url":"https://github.com/mookums/zzz","commit_stats":{"total_commits":260,"total_committers":2,"mean_commits":130.0,"dds":"0.12307692307692308","last_synced_commit":"28b3b376bf062e1c229a8f6307eb1f746a602006"},"previous_names":["mookums/zzz"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mookums%2Fzzz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mookums%2Fzzz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mookums%2Fzzz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mookums%2Fzzz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mookums","download_url":"https://codeload.github.com/mookums/zzz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240491861,"owners_count":19809978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["http","http-server","https","tls","zig","zig-package","zzz"],"created_at":"2024-10-17T21:04:39.428Z","updated_at":"2025-02-24T14:06:42.096Z","avatar_url":"https://github.com/mookums.png","language":"Zig","readme":"# zzz\n![zzz logo](./docs/img/zzz.png)\n\n\n## Installing\nLatest Zig Stable: `0.13.0`\n\nLatest zzz release: `0.3.0`\n```\nzig fetch --save git+https://github.com/mookums/zzz#v0.3.0\n```\n\nYou can then add the dependency in your `build.zig` file:\n```zig\nconst zzz = b.dependency(\"zzz\", .{\n    .target = target,\n    .optimize = optimize,\n}).module(\"zzz\");\n\nexe.root_module.addImport(zzz);\n```\n\n## zzz?\nzzz is a framework for writing performant and reliable networked services in Zig. It supports both HTTP and HTTPS (using BearSSL for TLS).\n\nzzz currently supports Linux, Mac and Windows. Linux is currently the recommended target for deployments.\n\n\u003e [!IMPORTANT]\n\u003e zzz is currently **alpha** software and there is still a lot changing at a fairly quick pace and certain places where things are less polished.\n\nIt focuses on modularity and portability, allowing you to swap in your own implementations for various things. Consumers can provide an async implementation, allowing for maximum flexibility. This allows for use in standard servers as well as embedded/bare metal domains.\n\nFor more information, look here:\n1. [Getting Started](./docs/getting_started.md)\n2. [HTTPS](./docs/https.md)\n\n## Optimization\nzzz is **very** fast. Through a combination of methods, such as allocation at start up and avoiding thread contention, we are able to extract tons of performance out of a fairly simple implementation. zzz is quite robust currently but is still early stage software. It's currently been running in production, serving my [site](https://muki.gg).\n\nWith the recent migration to [tardy](https://github.com/mookums/tardy), zzz is about as fast as gnet, the fastest plaintext HTTP server according to [TechEmpower](https://www.techempower.com/benchmarks/#hw=ph\u0026test=plaintext\u0026section=data-r22), while consuming only ~22% of the memory that gnet requires.\n\n![benchmark (request per sec)](./docs/benchmark/req_per_sec_ccx63_24.png)\n\n[Raw Data](./docs/benchmark/request_ccx63_24.csv)\n\n![benchmark (peak memory)](./docs/benchmark/peak_memory_ccx63_24.png)\n\n[Raw Data](./docs/benchmark/memory_ccx63_24.csv)\n\nOn the CCX63 instance on Hetzner with 2000 max connections, we are 70.9% faster than [zap](https://github.com/zigzap/zap) and 83.8% faster than [http.zig](https://github.com/karlseguin/http.zig). We also utilize less memory, using only ~3% of the memory used by zap and ~1.6% of the memory used by http.zig.\n\nzzz can be configured to utilize minimal memory while remaining performant. The provided `minram` example only uses 256 kB!\n\n## Features\n- Built on top of [Tardy](https://github.com/mookums/tardy), an asynchronous runtime.\n- [Modular Asynchronous Implementation](https://muki.gg/post/modular-async)\n    - `io_uring` for Linux (\u003e= 5.1.0).\n    - `epoll` for Linux (\u003e= 2.5.45).\n    - `kqueue` for BSD \u0026 Mac.\n    - `poll` for Linux, Mac and Windows.\n- Layered Router, including Middleware\n- Single and Multithreaded Support\n- TLS using BearSSL\n- Memory Pooling for minimal allocations \n\n## Contribution\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in zzz by you, shall be licensed as MPL2.0, without any additional terms or conditions.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmookums%2Fzzz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmookums%2Fzzz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmookums%2Fzzz/lists"}