{"id":19805653,"url":"https://github.com/remirobert/rocko","last_synced_at":"2025-06-26T15:33:42.989Z","repository":{"id":72989056,"uuid":"57376650","full_name":"remirobert/rocko","owner":"remirobert","description":":dog: Small, and basic http server, written in full C :frog:","archived":false,"fork":false,"pushed_at":"2016-05-11T13:19:37.000Z","size":45,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-01T06:37:03.434Z","etag":null,"topics":["c","http","http-server","request","response"],"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/remirobert.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,"zenodo":null}},"created_at":"2016-04-29T10:26:47.000Z","updated_at":"2024-11-07T05:29:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"781195bb-90ae-4ec9-8cf1-a42cb5ee6271","html_url":"https://github.com/remirobert/rocko","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/remirobert/rocko","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirobert%2Frocko","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirobert%2Frocko/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirobert%2Frocko/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirobert%2Frocko/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remirobert","download_url":"https://codeload.github.com/remirobert/rocko/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirobert%2Frocko/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259752083,"owners_count":22905972,"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":["c","http","http-server","request","response"],"created_at":"2024-11-12T09:04:51.799Z","updated_at":"2025-06-14T03:05:54.759Z","avatar_url":"https://github.com/remirobert.png","language":"C","readme":"![logo](https://cloud.githubusercontent.com/assets/3276768/15173727/5f5608f8-1790-11e6-895f-870d7c199d60.png)\n\n\n\u003cimg align=\"left\" width=\"366\" alt=\"screen shot 2016-05-11 at 15 54 58\" src=\"https://cloud.githubusercontent.com/assets/3276768/15173809/cc4a00ea-1790-11e6-999d-611bb5123a53.png\"\u003e\n\n\u003c/br\u003e\u003c/br\u003e\nSmall, and basic http server, written in full **C** 😾    🐕. With a 🍰 API, easy to use like a ⚽️.\nUse the **kevent** for async socket. Available for **OSX**, or **Free BSD**.\n\n\n\u003c/br\u003e\u003c/br\u003e\n\n⚠️ This project is under development ⭐️.\n\n#Installation\n\nUse CMake to generate a Makefile, and the compile the source.\n```sh\ncmake .\nmake\n```\n\n#How to use\n\n```C\n//Include the rocko public API\n#include \"rocko.h\"\n\n//Create a function which defines your route.\n//Keep in mind the prototype has to be this one.\n//You get the request informations in parameters with the body.\nstruct response welcome(struct request req) {\n    //Here you build your response.\n    //Following this schema :\n    //{response_code, body}\n    return (struct response){R_200, \"Welcome !\"};\n}\n\nint main(int argc, char **argv) {\n    //Initalise rocko server has to be call before everything\n    rocko_init();\n    \n    //Add your routes here with your method, the request_uri, and your function\n    rocko_add_route(\"GET\", \"/welcome\", welcome);\n    \n    //Start and run the server with your port\n    rocko_start(8080);\n    return 0\n}\n```\n\n###Todo 🦀💨\n\n- A lot of tests\n- Buffer cricular, for reading and write on the sockets\n- Upload, download files\n- Benchmark, with orther languages and frameworks\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremirobert%2Frocko","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremirobert%2Frocko","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremirobert%2Frocko/lists"}