{"id":24189715,"url":"https://github.com/ztgx/hoopd","last_synced_at":"2026-05-13T04:03:58.843Z","repository":{"id":126533165,"uuid":"270006078","full_name":"zTgx/hoopd","owner":"zTgx","description":"✨ Nginx inspired web framework written in Modern C++","archived":false,"fork":false,"pushed_at":"2021-07-16T04:56:32.000Z","size":390,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-13T14:45:33.280Z","etag":null,"topics":["cpp11","hoopics","http-server","nginx","web-framework"],"latest_commit_sha":null,"homepage":"http://www.hoopics.cn","language":"C++","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/zTgx.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":"2020-06-06T14:28:55.000Z","updated_at":"2023-06-13T16:03:05.000Z","dependencies_parsed_at":"2023-06-17T03:45:47.964Z","dependency_job_id":null,"html_url":"https://github.com/zTgx/hoopd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zTgx%2Fhoopd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zTgx%2Fhoopd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zTgx%2Fhoopd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zTgx%2Fhoopd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zTgx","download_url":"https://codeload.github.com/zTgx/hoopd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241601167,"owners_count":19988879,"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":["cpp11","hoopics","http-server","nginx","web-framework"],"created_at":"2025-01-13T14:30:28.969Z","updated_at":"2026-05-13T04:03:58.760Z","avatar_url":"https://github.com/zTgx.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [hoopd](https://github.com/zTgx/hoopd) ![C/C++ CI](https://github.com/zTgx/hoopd/workflows/C/C++%20CI/badge.svg)\r\nhoopd, Nginx inspired, and will be a simple and easy to use web framework written in modern C++.   \r\n\r\n# WIP\r\n\r\n## Supported build tools versions\r\ng++ 8.4  +   \r\ncmake 3.17 +\r\n\r\n## Feature Overview\r\n- Build robust and scalable RESTful APIs\r\n- Group APIs\r\n- Data binding for JSON\r\n- Handy functions to send variety of HTTP responses\r\n- Centralized HTTP error handling\r\n\r\n## Benchmarks\r\n- WIP\r\n\r\n## Building\r\n```c++\r\nmkdir build \u0026\u0026 cd build \u0026\u0026 cmake .. \u0026\u0026 make\r\n```\r\n\r\n## Example\r\n* Server\r\n```c++\r\n#include \u003choopd.h\u003e\r\n\r\nusing namespace hoopd;\r\n\r\nclass Echo {\r\npublic:\r\n    std::string echo() {\r\n        std::string body{\"Hi there; my name is hoopd, Good to see you.\"};\r\n        return body;\r\n    }\r\n};\r\n\r\nint main() {\r\n    Hoopd server;\r\n    server.set_scope(\"/api/v2\");\r\n\r\n    server.get(\"/echo\", [](const http::Request\u0026 req, http::Response\u0026 res) {\r\n        Echo e;\r\n        std::string message = e.echo();\r\n\r\n        std::string k{\"Cache-control\"};\r\n        std::string v{\"no-cache\"};\r\n        res.header.headers(k, v);\r\n        \r\n        res.body = message;\r\n\r\n        req.description();\r\n        res.description();\r\n    });\r\n\r\n    server.run();\r\n}\r\n```\r\n* client: Use curl\r\n```c\r\ncurl http://127.0.0.1:9527/api/v2/echo\r\n```\r\n* client: Or Use python\r\n```c\r\npython client.py\r\n```\r\n* output \r\n```\r\nHi there; my name is hoopd, Good to see you.\r\n```\r\n  \r\n## More Examples\r\nMore examples can be found [in the examples directory](examples/).  \r\n\r\n\r\n## Credits\r\n\r\n- [zTgx](https://github.com/zTgx) - Author\r\n\r\n## License\r\n[MIT](https://github.com/zTgx/hoopd/blob/master/LICENSE)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fztgx%2Fhoopd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fztgx%2Fhoopd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fztgx%2Fhoopd/lists"}