{"id":15637160,"url":"https://github.com/christianparpart/x0","last_synced_at":"2025-04-13T21:37:00.683Z","repository":{"id":145096710,"uuid":"407650","full_name":"christianparpart/x0","owner":"christianparpart","description":"Xzero HTTP Application Server","archived":false,"fork":false,"pushed_at":"2020-09-09T13:34:51.000Z","size":18062,"stargazers_count":109,"open_issues_count":43,"forks_count":16,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-27T11:51:22.910Z","etag":null,"topics":["c-plus-plus","consensus","http","http2","https","raft","ssl"],"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/christianparpart.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2009-12-08T12:19:55.000Z","updated_at":"2024-11-28T16:27:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"bfabfec4-5935-481a-871c-626ee849be09","html_url":"https://github.com/christianparpart/x0","commit_stats":{"total_commits":5373,"total_committers":7,"mean_commits":767.5714285714286,"dds":0.5698864693839568,"last_synced_commit":"1cfe26c2b0a78e79e7c59db7ff654b6934446298"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christianparpart%2Fx0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christianparpart%2Fx0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christianparpart%2Fx0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christianparpart%2Fx0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/christianparpart","download_url":"https://codeload.github.com/christianparpart/x0/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248788743,"owners_count":21161726,"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-plus-plus","consensus","http","http2","https","raft","ssl"],"created_at":"2024-10-03T11:10:31.384Z","updated_at":"2025-04-13T21:37:00.659Z","avatar_url":"https://github.com/christianparpart.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Xzero HTTP Application Web Server\n\n`x0d` is a thin low-latency and scalable HTTP web server built on-top\nof the Xzero C++ HTTP Framework.\n\nIt supports a very expressive and natural configuration via\nthe [Flow configuration language](https://github.com/christianparpart/x0/) and\na number of standard plugins to become *your* web application server.\n\n## Features\n\n- Customizable Error Pages\n- Automatic Directory Indexing\n- on-the-fly executable upgrade with gracefully finishing currently active requests.\n- Easily Extensible via the Powerful Plugin System\n- SSL connection encryption\n  - SSL Server Name Indication (SNI) extension\n- Dynamic Content Compression\n- Advanced Dynamic Load Balancer\n  - Supporting different backend transports (TCP/IP, and UNIX Domain Sockets).\n  - Supporting different backend protocols (HTTP and FastCGI)\n  - Advanced Health Monitoring\n  - JSON API for retrieving state, stats,\n    and reconfiguring clusters (including adding/updating/removing backends).\n  - [Client Side Routing support](http://xzero.io/#/article/client-side-routing)\n  - Sticky Offline Mode\n  - X-Sendfile support, full static file transmission acceleration\n  - HAproxy compatible CSV output\n  - Object Cache\n    - fully runtime configurable\n    - client-cache aware\n    - life JSON stats\n    - supports serving stale objects when no backend is available\n    - `Vary` response-header Support.\n    - multiple update strategies (locked, shadowed)\n- Basic Authentication\n  - including PAM authentication\n- Request Path Aliasing\n- Automatic Directory Listing\n- Apache-style access logging\n- User-directory Support\n- Browser Match Support\n- Customizable Expires \u0026 Cache-Control Response Header Control\n- instant mode (configuration-less basic HTTP serving)\n- CGI/1.1 Support\n\n## Installation Requirements\n\n- latest stable CLANG (4.0) or a comparible GCC\n- automake / autoconf (for building only)\n- zlib (optional \u0026 recommended, for compression)\n- OpenSSL (optional \u0026 recommended, for SSL/TLS encryption)\n\n### Building from Source on Ubuntu 17.04:\n\n```sh\n# Installs required dependencies\nsudo apt-get install make autoconf automake libtool gcc-4.8 g++-4.8 \\\n    libmysqlclient-dev zlib1g-dev libbz2-dev pkg-config libssl-dev \\\n    libfcgi-dev libgoogle-perftools-dev libpam-dev git\n\n# Install git and clone repository\ngit clone git://github.com/christianparpart/x0.git \u0026\u0026 cd x0\n\n# Now bootstrap the build (in a sandbox directory)\nmkdir -p build \u0026\u0026 cd build \u0026\u0026 ../autogen.sh\n../configure # \u003c-- your custom configure-flags here\n\n# Now compiling should just work.\nmake \u0026\u0026 sudo make install\n\n# Run web server on port 8080\n./x0d --instant=`pwd`/www/htdocs,8080\n\n# or try its CLI help\n./x0d -h\n\n# have fun hacking and don't forget to checkout the just installed man pages ;-)\n```\n\nLICENSE\n-------\n\n```\nCopyright (c) 2009-2018 Christian Parpart \u003cchristian@parpart.family\u003e\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristianparpart%2Fx0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchristianparpart%2Fx0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristianparpart%2Fx0/lists"}