{"id":19211025,"url":"https://github.com/boudra/griffin","last_synced_at":"2026-06-22T05:31:48.646Z","repository":{"id":85757784,"uuid":"60518026","full_name":"boudra/griffin","owner":"boudra","description":"A simple HTTP server library for C","archived":false,"fork":false,"pushed_at":"2020-09-20T13:45:30.000Z","size":40,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-20T08:07:42.885Z","etag":null,"topics":["c","http","http-server","simple"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boudra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2016-06-06T10:01:12.000Z","updated_at":"2021-06-07T16:36:03.000Z","dependencies_parsed_at":"2023-05-04T17:46:17.294Z","dependency_job_id":null,"html_url":"https://github.com/boudra/griffin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/boudra/griffin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boudra%2Fgriffin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boudra%2Fgriffin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boudra%2Fgriffin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boudra%2Fgriffin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boudra","download_url":"https://codeload.github.com/boudra/griffin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boudra%2Fgriffin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34636427,"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-22T02:00:06.391Z","response_time":106,"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":["c","http","http-server","simple"],"created_at":"2024-11-09T13:40:29.422Z","updated_at":"2026-06-22T05:31:48.614Z","avatar_url":"https://github.com/boudra.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Griffin\n\nTiny HTTP server library in C, inspired by the design of [Plug](https://github.com/elixir-plug/plug);\n\nI built this for fun and to learn the HTTP protocol and sockets in more depth, it has not been tested in production.\n\n## Tasks\n\n- [x] Basic HTTP server\n- [x] Basic routing and path parameter parsing\n- [ ] HTTPS/TLS\n\n## Example\n\n```c\n#include \u003cgriffin.h\u003e\n#include \u003cgn_router.h\u003e\n#include \u003cgn_http.h\u003e\n\nvoid root(gn_conn_t* conn, gn_map_t* params) {\n    gn_put_body(conn, \"Root\");\n    gn_put_status(conn, 200);\n}\n\nvoid say_hello(gn_conn_t* conn, gn_map_t* params) {\n    const char* name = gn_map_get(params, \"name\");\n\n    gn_put_body(conn, name);\n    gn_put_status(conn, 200);\n}\n\nint main(int argc, char *argv[]) {\n    gn_endpoint_t endpoint = {0};\n    gn_router_t router = {0};\n\n    gn_add_middleware(\u0026endpoint, \u0026gn_router, \u0026router);\n\n    gn_router_match(\u0026router, GET, \"/\", root);\n    gn_router_match(\u0026router, GET, \"/hello/:name\", say_hello);\n    \n    gn_start_server(\u0026endpoint, \"0.0.0.0\", 8080);\n\n    return 0;\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboudra%2Fgriffin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboudra%2Fgriffin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboudra%2Fgriffin/lists"}