1![CivetWeb](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/civetweb_64x64.png "CivetWeb") CivetWeb 2======= 3 4**The official home of CivetWeb is [https://github.com/civetweb/civetweb](https://github.com/civetweb/civetweb)** 5 6[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) 7[![GitHub contributors](https://img.shields.io/github/contributors/civetweb/civetweb.svg)](https://github.com/civetweb/civetweb/blob/master/CREDITS.md) 8 9Continuous integration for Linux and macOS ([Travis CI](https://travis-ci.org/civetweb/civetweb)): 10 11[![Travis Build Status](https://travis-ci.org/civetweb/civetweb.svg?branch=master)](https://travis-ci.org/civetweb/civetweb) 12 13Continuous integration for Windows ([AppVeyor](https://ci.appveyor.com/project/civetweb/civetweb)): 14 15[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/github/civetweb/civetweb?svg=true)](https://ci.appveyor.com/project/civetweb/civetweb/branch/master) 16 17Test coverage check ([coveralls](https://coveralls.io/github/civetweb/civetweb), [codecov](https://codecov.io/gh/civetweb/civetweb/branch/master)) (currently in a setup and evaluation phase): 18 19[![Coveralls](https://img.shields.io/coveralls/civetweb/civetweb.svg?maxAge=3600)]() 20[![Coverage Status](https://coveralls.io/repos/github/civetweb/civetweb/badge.svg?branch=master)](https://coveralls.io/github/civetweb/civetweb?branch=master) 21 22[![codecov](https://codecov.io/gh/civetweb/civetweb/branch/master/graph/badge.svg)](https://codecov.io/gh/civetweb/civetweb) 23 24 25 26Static source code analysis ([Coverity](https://scan.coverity.com/projects/5784)): 27 28[![Coverity Scan Build Status](https://scan.coverity.com/projects/5784/badge.svg)](https://scan.coverity.com/projects/5784) 29 30 31 32Project Mission 33----------------- 34 35Project mission is to provide easy to use, powerful, C/C++ embeddable web 36server with optional CGI, SSL and Lua support. 37CivetWeb has a MIT license so you can innovate without restrictions. 38 39CivetWeb can be used by developers as a library, to add web server functionality to an existing application. 40It can also be used by end users as a stand-alone web server. It is available as single executable, no installation is required. 41 42 43Where to find the official version? 44----------------------------------- 45 46End users can download CivetWeb releases at SourceForge 47[https://sourceforge.net/projects/civetweb/](https://sourceforge.net/projects/civetweb/) 48 49Developers can contribute to CivetWeb via GitHub 50[https://github.com/civetweb/civetweb](https://github.com/civetweb/civetweb) 51 52Trouble tickets should be filed on GitHub 53[https://github.com/civetweb/civetweb/issues](https://github.com/civetweb/civetweb/issues) 54 55Announcements are at Google Groups 56[https://groups.google.com/d/forum/civetweb](https://groups.google.com/d/forum/civetweb). Some older support and discussion threads are there as well. However, recently support questions and discussions are usually [GitHub issues](https://github.com/civetweb/civetweb/issues). 57 58Source releases can be found on GitHub 59[https://github.com/civetweb/civetweb/releases](https://github.com/civetweb/civetweb/releases) 60 61A very brief overview can be found on GitHub Pages 62[http://civetweb.github.io/civetweb/](http://civetweb.github.io/civetweb/) 63 64 65Getting The Source 66------------------ 67Download the source code by running the following code in your command prompt: 68 69$ git clone https://github.com/civetweb/civetweb.git 70or simply grab a copy of the source code as a Zip file. 71 72 73Quick start documentation 74-------------------------- 75 76- [docs/Installing.md](https://github.com/civetweb/civetweb/blob/master/docs/Installing.md) - Install Guide (for end users using pre-built binaries) 77- [docs/UserManual.md](https://github.com/civetweb/civetweb/blob/master/docs/UserManual.md) - End User Guide 78- [docs/Building.md](https://github.com/civetweb/civetweb/blob/master/docs/Building.md) - Building the Server (quick start guide) 79- [docs/Embedding.md](https://github.com/civetweb/civetweb/blob/master/docs/Embedding.md) - Embedding (how to add HTTP support to an existing application) 80- [docs/OpenSSL.md](https://github.com/civetweb/civetweb/blob/master/docs/OpenSSL.md) - Adding HTTPS (SSL/TLS) support using OpenSSL. 81- [API documentation](https://github.com/civetweb/civetweb/tree/master/docs/api) - Additional documentation on the civetweb application programming interface ([civetweb.h](https://github.com/civetweb/civetweb/blob/master/include/civetweb.h)). 82- [RELEASE_NOTES.md](https://github.com/civetweb/civetweb/blob/master/RELEASE_NOTES.md) - Release Notes 83- [LICENSE.md](https://github.com/civetweb/civetweb/blob/master/LICENSE.md) - Copyright License 84 85 86Overview 87-------- 88 89CivetWeb keeps the balance between functionality and 90simplicity by a carefully selected list of features: 91 92- Liberal, commercial-friendly, permissive, 93 [MIT license](http://en.wikipedia.org/wiki/MIT_License) 94- Free from copy-left licenses, like GPL, because you should innovate without 95 restrictions. 96- Forked from [Mongoose](https://code.google.com/p/mongoose/) in 2013, before 97 it changed the licence from MIT to commercial + GPL. A lot of enhancements 98 have been added since that time, see 99 [RELEASE_NOTES.md](https://github.com/civetweb/civetweb/blob/master/RELEASE_NOTES.md). 100- Works on Windows, Mac, Linux, UNIX, iPhone, Android, Buildroot, and many 101 other platforms. 102- Scripting and database support (Lua scripts, Lua Server Pages, CGI + SQLite 103 database, Server side javascript). 104 This provides a ready to go, powerful web development platform in a one 105 single-click executable with **no dependencies**. 106- Support for CGI, HTTPS (SSL/TLS), SSI, HTTP digest (MD5) authorization, Websocket, 107 WebDAV. 108- Optional support for authentication using client side X.509 certificates. 109- Resumed download, URL rewrite, file blacklist, IP-based ACL, Windows service. 110- Download speed limit based on client subnet or URI pattern. 111- Simple and clean embedding API. 112- The source is in single file to make things easy. 113- Embedding examples included. 114- HTTP client capable of sending arbitrary HTTP/HTTPS requests. 115- Websocket client functionality available (WS/WSS). 116 117 118### Optionally included software 119 120[![Lua](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/lua-logo.jpg "Lua Logo")](http://lua.org) 121 122[![Sqlite3](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/sqlite3-logo.jpg "Sqlite3 Logo")](http://sqlite.org) 123 124[![LuaFileSystem](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/luafilesystem-logo.jpg "LuaFileSystem Logo")](http://keplerproject.github.io/luafilesystem/) 125 126[![LuaSQLite3](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/luasqlite-logo.jpg "LuaSQLite3 Logo")](http://lua.sqlite.org/index.cgi/index) 127 128[![LuaXML](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/luaxml-logo.jpg "LuaXML Logo")](http://viremo.eludi.net/LuaXML/index.html) 129 130[![Duktape](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/duktape-logo.png "Duktape Logo")](http://duktape.org) 131 132 133Support 134------- 135 136This project is very easy to install and use. 137Please read the [documentation](https://github.com/civetweb/civetweb/blob/master/docs/) 138and have a look at the [examples](https://github.com/civetweb/civetweb/blob/master/examples/). 139More information may be found on the [mailing list](https://groups.google.com/d/forum/civetweb). 140 141Note: I do not take any liability or warranty for any linked contents. Visit these pages and try the community support suggestions at your own risk. 142 143 144Contributions 145--------------- 146 147Contributions are welcome provided all contributions carry the MIT license. 148 149DO NOT APPLY fixes copied from Mongoose to this project to prevent GPL tainting. 150Since 2013, CivetWeb and Mongoose are developed independently. 151By now the code base differs, so patches cannot be safely transferred in either direction. 152 153Some guidelines can be found in [docs/Contribution.md](https://github.com/civetweb/civetweb/blob/master/docs/Contribution.md). 154 155 156### Authors 157 158CivetWeb is based on the Mongoose project. The original author of Mongoose was 159Sergey Lyubka (Copyright (c) 2004-2013 Sergey Lyubka, MIT license). 160 161However, in August 16, 2013, the [license of Mongoose has been changed](https://groups.google.com/forum/#!topic/mongoose-users/aafbOnHonkI) 162after writing and distributing the original code this project is based on. 163The license change and CivetWeb used to be mentioned on the Mongoose 164[Wikipedia](https://en.wikipedia.org/wiki/Mongoose_(web_server)) 165page as well, but it's getting deleted (and added again) there every 166now and then. 167 168CivetWeb has been forked from the last MIT version of Mongoose. 169Since 2013, CivetWeb has seen many improvements from various authors 170(Copyright (c) 2013-2017 the CivetWeb developers, MIT license). 171A list of authors can be found in [CREDITS.md](https://github.com/civetweb/civetweb/blob/master/CREDITS.md). 172 173Using the CivetWeb project ensures the MIT licenses terms are applied and 174GPL cannot be imposed on any of this code, as long as it is sourced from 175here. This code will remain free with the MIT license protection. 176 177