{"id":13626702,"url":"https://github.com/kprotty/zap","last_synced_at":"2025-05-15T20:07:21.735Z","repository":{"id":37335835,"uuid":"198472219","full_name":"kprotty/zap","owner":"kprotty","description":"An asynchronous runtime with a focus on performance and resource efficiency.","archived":false,"fork":false,"pushed_at":"2025-01-02T03:13:29.000Z","size":8598,"stargazers_count":507,"open_issues_count":2,"forks_count":18,"subscribers_count":17,"default_branch":"blog","last_synced_at":"2025-04-08T06:35:44.038Z","etag":null,"topics":["asynchronous","io","networking","performance","runtime","rust","scheduler","unix","windows","zig"],"latest_commit_sha":null,"homepage":"https://github.com/kprotty/zap","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kprotty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT","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":"2019-07-23T16:50:25.000Z","updated_at":"2025-04-07T04:20:36.000Z","dependencies_parsed_at":"2025-01-18T22:39:43.708Z","dependency_job_id":null,"html_url":"https://github.com/kprotty/zap","commit_stats":{"total_commits":68,"total_committers":6,"mean_commits":"11.333333333333334","dds":0.07352941176470584,"last_synced_commit":"97d4b4dc5317c0a6614582b51a60d892721018d2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kprotty%2Fzap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kprotty%2Fzap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kprotty%2Fzap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kprotty%2Fzap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kprotty","download_url":"https://codeload.github.com/kprotty/zap/tar.gz/refs/heads/blog","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414499,"owners_count":22067272,"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":["asynchronous","io","networking","performance","runtime","rust","scheduler","unix","windows","zig"],"created_at":"2024-08-01T21:02:27.078Z","updated_at":"2025-05-15T20:07:16.685Z","avatar_url":"https://github.com/kprotty.png","language":"Zig","readme":"zap [![License](https://img.shields.io/badge/license-MIT-8FBD08.svg)](https://shields.io/)\n====\nDesigning efficient task scheduling for Ziglang.\n\n## Goals\nSo I originally started this project around 2019 in order to develop memory, threads, io, and synchronization primitives for Zig given they were lacking at the time. Over the months, it shifted more on developing a runtime (or thread pool rather) that was both resource efficient (one of Zig's, and my personal, implicit Zen's) and competitive in performance with existing implementations.\n\nHere lies the result of that effort for now. There's still more experimenting to do like how to dispatch I/O efficiently and the like, but I'm happy with what has come and wanted to share. You can find a copy of the blogpost [in this repo](blog.md), the reference implementation in [src](src/thread_pool.zig), and some of my [previous attempts](zap/tree/old_branches) in their own branch.\n\n## Benchmarks\nTo benchmark the implementation, I wrote some quicksort implementations for similar APIs in other languages. The reasoning behind quicksort is that it's fairly practical and can also be heavy with concurrency. Try running them locally!\n","funding_links":[],"categories":["Zig","Misc libraries","Libraries","Systems Programming","zig"],"sub_categories":["Asynchronous Runtime"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkprotty%2Fzap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkprotty%2Fzap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkprotty%2Fzap/lists"}