{"id":13812610,"url":"https://github.com/zhaojh329/libuhttpd","last_synced_at":"2025-04-05T03:10:28.424Z","repository":{"id":26666887,"uuid":"109482449","full_name":"zhaojh329/libuhttpd","owner":"zhaojh329","description":"A very flexible, lightweight and high performance HTTP server library based on libev and http-parser for Embedded Linux.","archived":false,"fork":false,"pushed_at":"2024-07-24T11:38:29.000Z","size":521,"stargazers_count":380,"open_issues_count":9,"forks_count":66,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-08-04T04:02:34.299Z","etag":null,"topics":["cgi","embedded","http","http-parser","https","lede","libev","lua","mbedtls","openssl","openwrt","web","wolfssl"],"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/zhaojh329.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2017-11-04T09:30:19.000Z","updated_at":"2024-08-04T04:02:39.216Z","dependencies_parsed_at":"2024-01-16T23:30:25.933Z","dependency_job_id":"6de2694b-8aea-4060-9def-22c25df9fe09","html_url":"https://github.com/zhaojh329/libuhttpd","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhaojh329%2Flibuhttpd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhaojh329%2Flibuhttpd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhaojh329%2Flibuhttpd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhaojh329%2Flibuhttpd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhaojh329","download_url":"https://codeload.github.com/zhaojh329/libuhttpd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280272,"owners_count":20912967,"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":["cgi","embedded","http","http-parser","https","lede","libev","lua","mbedtls","openssl","openwrt","web","wolfssl"],"created_at":"2024-08-04T04:00:53.728Z","updated_at":"2025-04-05T03:10:28.400Z","avatar_url":"https://github.com/zhaojh329.png","language":"C","funding_links":[],"categories":["Networking and Internet","网络和互联网","Protocols"],"sub_categories":["Advanced books","高级书籍","Web Server"],"readme":"# libuhttpd([中文](/README_ZH.md))\n\n[1]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=plastic\n[2]: /LICENSE\n[3]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=plastic\n[4]: https://github.com/zhaojh329/libuhttpd/pulls\n[5]: https://img.shields.io/badge/Issues-welcome-brightgreen.svg?style=plastic\n[6]: https://github.com/zhaojh329/libuhttpd/issues/new\n[7]: https://img.shields.io/badge/release-3.14.2-blue.svg?style=plastic\n[8]: https://github.com/zhaojh329/libuhttpd/releases\n[9]: https://github.com/zhaojh329/libuhttpd/workflows/build/badge.svg\n\n[![license][1]][2]\n[![PRs Welcome][3]][4]\n[![Issue Welcome][5]][6]\n[![Release Version][7]][8]\n![Build Status][9]\n\n[libev]: http://software.schmorp.de/pkg/libev.html\n[http-parser]: https://github.com/nodejs/http-parser\n[openssl]: https://github.com/openssl/openssl\n[mbedtls]: https://github.com/ARMmbed/mbedtls\n[wolfssl]: https://github.com/wolfSSL/wolfssl\n\nA very flexible, lightweight and high performance HTTP server library based on [libev] and [http-parser] for Embedded Linux.\n\n# Features\n* Lightweight and high performance\n* Use [libev] as its event backend\n* Support HTTPS - OpenSSL, mbedtls and CyaSSl(wolfssl)\n* Support IPv6\n* Support CGI\n* Support plugin\n* Support upload large file\n* Support HTTP range requests\n* Support multi-process model - The same multi-process model as Nginx\n* Flexible - you can easily extend your application to have HTTP/HTTPS services\n* Code structure is concise and understandable, also suitable for learning\n\n# Dependencies\n* [libev] - A full-featured and high-performance event loop\n* [http-parser] - A high performance parser for HTTP messages written in C\n* [mbedtls] - If you choose mbedtls as your SSL backend\n* [wolfssl] - If you choose wolfssl as your SSL backend\n* [openssl] - If you choose openssl as your SSL backend\n\n# Benchmark\n## Nginx\n\n\t$ wrk -t4 -c400 -d10s http://localhost:80/test.html\n\tRunning 10s test @ http://localhost:80/test.html\n\t4 threads and 400 connections\n\tThread Stats   Avg      Stdev     Max   +/- Stdev\n\t\tLatency     3.54ms    7.32ms 224.58ms   93.30%\n\t\tReq/Sec    40.63k    12.49k   96.29k    74.50%\n\t1622012 requests in 10.05s, 385.09MB read\n\tRequests/sec: 161390.39\n\tTransfer/sec:     38.32MB\n\n## libuhttpd\n\n\t$ wrk -t4 -c400 -d10s http://localhost:8080/test.html\n\tRunning 10s test @ http://localhost:8080/test.html\n\t4 threads and 400 connections\n\tThread Stats   Avg      Stdev     Max   +/- Stdev\n\t\tLatency     2.12ms    3.01ms  31.30ms   89.26%\n\t\tReq/Sec    70.87k    12.53k  142.54k    79.75%\n\t2826394 requests in 10.05s, 547.18MB read\n\tRequests/sec: 281328.83\n\tTransfer/sec:     54.46MB\n\n# Build\n\n\t~/libuhttpd/$ mkdir build \u0026\u0026 cd build\n\t~/libuhttpd/build$ cmake ..\n\t~/libuhttpd/build$ make\n\n# Run Example\t\nRun\n\n\t~/libuhttpd/build$ ./example/simple_server -v -a :8080\n\t\nThen use the curl to test\n\n\t$ curl 'http://127.0.0.1:8000/echo' -v\n\n# Install on OpenWrt\n    opkg update\n    opkg list | grep libuhttpd\n    opkg install libuhttpd-nossl\n\nIf the install command fails, you can [compile it yourself](/BUILDOPENWRT.md).\n\n# [Example](/example)\n\n# Contributing\nIf you would like to help making [libuhttpd](https://github.com/zhaojh329/libuhttpd) better,\nsee the [CONTRIBUTING.md](https://github.com/zhaojh329/libuhttpd/blob/master/CONTRIBUTING.md) file.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhaojh329%2Flibuhttpd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhaojh329%2Flibuhttpd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhaojh329%2Flibuhttpd/lists"}