{"id":26361407,"url":"https://github.com/92181/webserver","last_synced_at":"2025-10-11T19:43:51.853Z","repository":{"id":217574121,"uuid":"744257583","full_name":"92181/webserver","owner":"92181","description":"A simple HTTPS server library, containing a fully working static file server.","archived":false,"fork":false,"pushed_at":"2025-05-10T19:59:43.000Z","size":694,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-10T20:29:45.057Z","etag":null,"topics":["c","fileserver","https","multithreading","network","openssl","server","static-server"],"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/92181.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":"2024-01-16T23:33:45.000Z","updated_at":"2025-05-10T19:59:47.000Z","dependencies_parsed_at":"2024-01-24T19:35:12.837Z","dependency_job_id":"713be929-7a33-46a6-9e02-7422aea2236e","html_url":"https://github.com/92181/webserver","commit_stats":null,"previous_names":["92181/webserver"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/92181/webserver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/92181%2Fwebserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/92181%2Fwebserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/92181%2Fwebserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/92181%2Fwebserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/92181","download_url":"https://codeload.github.com/92181/webserver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/92181%2Fwebserver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008441,"owners_count":26084460,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"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","fileserver","https","multithreading","network","openssl","server","static-server"],"created_at":"2025-03-16T17:37:30.415Z","updated_at":"2025-10-11T19:43:51.821Z","avatar_url":"https://github.com/92181.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WpXI - Simple \u0026 Fast HTTPS Server\nPerformant and minimal web server, capable of being used simply and also highly extensible. This small web server library depends on OpenSSL, it also uses some native system libraries, which are included by default on Linux and MacOS. \nIt serves all of it's files in a multi-threaded way and is capable of handling both IPv4 \u0026 IPv6 connections. \n\nIt was written because I was frustated by the lack of functionality of `python3 -m http.server` and wanted a 'drop in' replacement which was highly extensible, written in C and which you can modify as you see fit.\n\nVarious things that it can do are...\n* Handling HTTPS connection requests in a safe and efficient manner.\n* Serving static and dynamic files using various AJAX methods.\n* Keeping track of various clients that are connected to the server.\n\nIt contains two examples...\n* Basic, an example illustrating a simple server side routing mechanism.\n* Static, a fully operational HTTPS static file server which serves files from any directory.\n\n# Usage\nThe server makes uses of non-blocking sockets to continuously check for incoming connections. \nThere are multiple sections to the code, such as certificate handling, serving, threading, etc.\n\nSelf-signed certificates can be generated with OpenSSL.\n```bash\nopenssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3560 -nodes -subj '/CN=127.0.0.1'\n```\n\nThe examples can be compiled and ran with gcc using these bash commands.\n```bash\ngcc main.c -o main -O3 -lssl -lcrypto\n./main\n```\n\n# About \u0026 Licensing\nThis project is licensed under the permissive MIT license. Please consider starring the project if you like it.\n\nOriginally it used to contain a WebSocket implementation, however I revamped the library and omitted it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F92181%2Fwebserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F92181%2Fwebserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F92181%2Fwebserver/lists"}