{"id":24151135,"url":"https://github.com/imdanielsp/eagle","last_synced_at":"2026-06-13T14:31:29.852Z","repository":{"id":41048812,"uuid":"319888079","full_name":"imdanielsp/eagle","owner":"imdanielsp","description":"A Minimalistic C++ Web Framework","archived":false,"fork":false,"pushed_at":"2022-06-20T18:12:42.000Z","size":105,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"mainline","last_synced_at":"2025-03-01T18:16:40.130Z","etag":null,"topics":["cpp","http","web-application"],"latest_commit_sha":null,"homepage":"","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/imdanielsp.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}},"created_at":"2020-12-09T08:16:50.000Z","updated_at":"2022-06-20T18:12:46.000Z","dependencies_parsed_at":"2022-09-20T21:17:44.164Z","dependency_job_id":null,"html_url":"https://github.com/imdanielsp/eagle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/imdanielsp/eagle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdanielsp%2Feagle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdanielsp%2Feagle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdanielsp%2Feagle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdanielsp%2Feagle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imdanielsp","download_url":"https://codeload.github.com/imdanielsp/eagle/tar.gz/refs/heads/mainline","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdanielsp%2Feagle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34288662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cpp","http","web-application"],"created_at":"2025-01-12T09:14:05.141Z","updated_at":"2026-06-13T14:31:29.837Z","avatar_url":"https://github.com/imdanielsp.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Eagle CI Build](https://github.com/imdanielsp/eagle/workflows/Eagle%20CI%20Build/badge.svg)\r\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fimdanielsp%2Feagle.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fimdanielsp%2Feagle?ref=badge_shield)\r\n\r\n# Eagle\r\nA Minimalistic C++ Web Framework build on top of Boost Beast and ASIO\r\n\r\n## Example\r\n\r\nThe `eagle::app` object is the main interface for installing handlers and interceptors (more on that later):\r\n\r\n```c++\r\n#include \"eagle.hpp\"\r\n\r\nint main(argc, argv) {\r\n  eagle::app app{argc, argv};\r\n  \r\n  app.handle(http::verb::get, \"/hello-eagle\",\r\n           [](const auto\u0026 req, auto\u0026 resp) -\u003e bool {\r\n             resp.html() \u003c\u003c \"\u003ch1\u003eEagle!\u003c/h1\u003e\";\r\n             return true;\r\n           });\r\n\r\n  app.start();\r\n\r\n  return 0;\r\n}\r\n```\r\n\r\nEagle also support object handlers that can encapsulate application's state:\r\n\r\n```c++\r\n\r\n#include \"eagle.hpp\"\r\n\r\n\r\nclass h : public eagle::handler_object {\r\n public:\r\n  h() {}\r\n  virtual ~h() {}\r\n\r\n  bool get(const eagle::request\u0026, eagle::response\u0026 resp) override {\r\n    resp.html()\r\n        \u003c\u003c \"\u003cp\u003eDispatched by the handler object! Count \" \u003c\u003c state_.count_++ \u003c\u003c \"\u003c/p\u003e\";\r\n    return true;\r\n  }\r\n\r\n private:\r\n  struct application_state {\r\n    size_t count_{0};\r\n  } state_;\r\n};\r\n\r\nint main(argc, argv) {\r\n\r\n  eagle::app app{argc, argv};\r\n\r\n  h handler;\r\n  app.handle(\"/api/v1/users\", handler);\r\n\r\n  app.start();\r\n\r\n  return 0;\r\n}\r\n```\r\n\r\n## Building\r\nEagle uses `meson` as the build system and depends on the Boost.Beast library\r\n\r\n```bash\r\n$ brew install meson\r\n$ brew install boost\r\n$ meson builddir \u0026\u0026 cd builddir\r\n$ meson compile\r\n$ ./eagle\r\n```\r\n\r\n## Supported Method\r\nEagle's design principles are focus towards REST, the following methods are inherently supported in the interfaces:\r\n- GET\r\n- POST\r\n- PUT\r\n- DELETE\r\n\r\n\r\n# Roadmap\r\n- Hide the `boost::beast` dependecy\r\n- Implement a message modifier interface rather than intereact with a `http::resp` directly\r\n- Resource Id mapping\r\n- Query parameters\r\n- TBD\r\n\r\n\r\n## License\r\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fimdanielsp%2Feagle.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fimdanielsp%2Feagle?ref=badge_large)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdanielsp%2Feagle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimdanielsp%2Feagle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdanielsp%2Feagle/lists"}