2021-11-11 02:04:25 +13:00
 CivetWeb
2013-08-28 14:50:40 -04:00
=======
2021-11-11 02:04:25 +13:00
**The official home of CivetWeb is on GitHub [https://github.com/civetweb/civetweb ](https://github.com/civetweb/civetweb )**
2016-05-16 17:44:31 +02:00
2021-11-11 02:04:25 +13:00
[](https://opensource.org/licenses/MIT)
2017-08-08 00:19:57 +02:00
[](https://github.com/civetweb/civetweb/blob/master/CREDITS.md)
2021-11-11 02:04:25 +13:00
[](https://github.com/civetweb/civetweb/stargazers)
[](https://github.com/civetweb/civetweb/network/members)
2021-11-11 02:29:09 +13:00
[](https://github.com/civetweb/civetweb/releases)
2016-05-16 17:44:31 +02:00
2021-08-30 22:48:07 +02:00
Continuous integration for Linux and macOS ([Travis CI ](https://app.travis-ci.com/github/civetweb/civetweb )):
2015-07-13 22:23:37 +02:00
2021-08-30 22:48:07 +02:00
[](https://app.travis-ci.com/github/civetweb/civetweb)
2016-05-13 23:06:33 +02:00
2016-05-27 21:09:21 +02:00
Continuous integration for Windows ([AppVeyor ](https://ci.appveyor.com/project/civetweb/civetweb )):
2016-05-16 17:44:31 +02:00
2016-05-16 19:56:14 +02:00
[](https://ci.appveyor.com/project/civetweb/civetweb/branch/master)
2016-05-13 23:06:33 +02:00
2020-01-03 14:20:16 +01:00
Test coverage check ([coveralls ](https://coveralls.io/github/civetweb/civetweb ), [codecov ](https://codecov.io/gh/civetweb/civetweb/branch/master )) (using different tools/settings):
2016-05-13 23:06:33 +02:00
2017-06-18 14:26:48 +02:00
[]()
2016-02-28 23:02:07 +01:00
[](https://coveralls.io/github/civetweb/civetweb?branch=master)
2017-08-22 22:32:53 +02:00
[](https://codecov.io/gh/civetweb/civetweb)
2021-11-11 02:29:09 +13:00
Static source code analysis ([Coverity ](https://scan.coverity.com/projects/5784 )): [](https://scan.coverity.com/projects/5784)
2016-05-16 19:56:14 +02:00
2021-11-11 02:29:09 +13:00
CodeQL semantic code analysis: [](https://github.com/civetweb/civetweb/actions/workflows/codeql-analysis.yml)
2016-05-16 19:56:14 +02:00
2013-08-28 14:50:40 -04:00
Project Mission
-----------------
2012-08-25 22:48:14 +01:00
2020-01-03 14:20:16 +01:00
Project mission is to provide easy to use, powerful, C (C/C++) embeddable web server with optional CGI, SSL and Lua support.
2015-07-13 22:23:37 +02:00
CivetWeb has a MIT license so you can innovate without restrictions.
2016-05-13 23:06:33 +02:00
CivetWeb can be used by developers as a library, to add web server functionality to an existing application.
2020-01-03 14:20:16 +01:00
It can also be used by end users as a stand-alone web server running on a Windows or Linux PC. It is available as single executable, no installation is required.
2016-05-13 23:06:33 +02:00
2013-01-01 23:05:09 +00:00
2013-08-28 14:50:40 -04:00
Where to find the official version?
-----------------------------------
2013-08-19 12:29:13 -04:00
2021-11-11 02:04:25 +13:00
End users can download CivetWeb binaries / releases from here on GitHub [https://github.com/civetweb/civetweb/releases ](https://github.com/civetweb/civetweb/releases ) or SourceForge
2016-05-16 19:56:14 +02:00
[https://sourceforge.net/projects/civetweb/ ](https://sourceforge.net/projects/civetweb/ )
2013-08-19 12:29:13 -04:00
Developers can contribute to CivetWeb via GitHub
2016-05-16 19:56:14 +02:00
[https://github.com/civetweb/civetweb ](https://github.com/civetweb/civetweb )
2013-08-19 12:29:13 -04:00
2020-01-07 09:14:17 +01:00
Due to a [bug in Git for Windows V2.24 ](https://github.com/git-for-windows/git/issues/2435 )
CivetWeb must be used with an earlier or later version (see also [here ](https://github.com/civetweb/civetweb/issues/812 )).
2021-11-11 02:04:25 +13:00
Bugs and requests should be filed on GitHub
2016-05-16 19:56:14 +02:00
[https://github.com/civetweb/civetweb/issues ](https://github.com/civetweb/civetweb/issues )
2013-08-19 12:29:13 -04:00
2021-11-11 02:04:25 +13:00
New releases are announced on Google Groups
2020-10-03 20:38:05 +02:00
[https://groups.google.com/d/forum/civetweb ](https://groups.google.com/d/forum/civetweb )
Formerly some support question and discussion threads have been at [Google groups ](https://groups.google.com/d/forum/civetweb ).
Recent questions and discussions use [GitHub issues ](https://github.com/civetweb/civetweb/issues ).
2013-08-19 12:29:13 -04:00
2016-12-29 17:57:02 +01:00
Source releases can be found on GitHub
[https://github.com/civetweb/civetweb/releases ](https://github.com/civetweb/civetweb/releases )
2017-08-08 00:19:57 +02:00
A very brief overview can be found on GitHub Pages
2021-11-11 02:04:25 +13:00
[https://civetweb.github.io/civetweb/ ](https://civetweb.github.io/civetweb/ )
2019-01-20 00:38:24 +05:30
2013-08-28 14:50:40 -04:00
Quick start documentation
--------------------------
2013-08-21 23:32:20 -04:00
2016-05-13 23:06:33 +02:00
- [docs/Installing.md ](https://github.com/civetweb/civetweb/blob/master/docs/Installing.md ) - Install Guide (for end users using pre-built binaries)
2015-08-09 21:59:04 +02:00
- [docs/UserManual.md ](https://github.com/civetweb/civetweb/blob/master/docs/UserManual.md ) - End User Guide
2016-05-13 23:06:33 +02:00
- [docs/Building.md ](https://github.com/civetweb/civetweb/blob/master/docs/Building.md ) - Building the Server (quick start guide)
- [docs/Embedding.md ](https://github.com/civetweb/civetweb/blob/master/docs/Embedding.md ) - Embedding (how to add HTTP support to an existing application)
- [docs/OpenSSL.md ](https://github.com/civetweb/civetweb/blob/master/docs/OpenSSL.md ) - Adding HTTPS (SSL/TLS) support using OpenSSL.
2023-08-30 00:53:04 +03:00
- [docs/Docker.md ](https://github.com/civetweb/civetweb/blob/master/docs/Docker.md ) - Use CivetWeb in a Docker container.
2016-12-29 17:57:02 +01:00
- [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 )).
2015-08-09 21:59:04 +02:00
- [RELEASE_NOTES.md ](https://github.com/civetweb/civetweb/blob/master/RELEASE_NOTES.md ) - Release Notes
2021-04-05 20:10:26 +02:00
- [SECURITY.md ](https://github.com/civetweb/civetweb/blob/master/SECURITY.md ) - Security Policy
2015-08-09 21:59:04 +02:00
- [LICENSE.md ](https://github.com/civetweb/civetweb/blob/master/LICENSE.md ) - Copyright License
2013-08-21 23:32:20 -04:00
2015-07-13 22:23:37 +02:00
2013-08-28 14:50:40 -04:00
Overview
--------
2012-08-25 22:48:14 +01:00
2015-07-13 22:23:37 +02:00
CivetWeb keeps the balance between functionality and
2014-07-15 23:01:43 +02:00
simplicity by a carefully selected list of features:
2013-01-01 23:05:09 +00:00
2015-04-26 13:23:21 +02:00
- Forked from [Mongoose ](https://code.google.com/p/mongoose/ ) in 2013, before
2019-05-09 11:04:28 +02:00
it changed the licence from MIT to commercial + GPL. A lot of enhancements
2021-11-11 02:04:25 +13:00
have been added since then, see
2015-08-09 21:59:04 +02:00
[RELEASE_NOTES.md ](https://github.com/civetweb/civetweb/blob/master/RELEASE_NOTES.md ).
2021-11-11 02:04:25 +13:00
- Maintains the liberal, permissive, commercial-friendly,
[MIT license ](https://en.wikipedia.org/wiki/MIT_License )
- Project is free from copy-left licenses, like GPL, because you should innovate without
restrictions.
- Works on Windows, Mac, Linux, UNIX, IOS, Android, Buildroot, and many
2015-04-26 13:23:21 +02:00
other platforms.
2021-11-11 02:04:25 +13:00
- Scripting and database support (CGI, Lua Server Pages, Server side Lua scripts, Lua SQLite database,
Server side JavaScript).
2015-04-26 13:23:21 +02:00
This provides a ready to go, powerful web development platform in a one
2021-11-11 02:04:25 +13:00
single-click executable with **no dependencies** . 0
- Support for CGI, SSI, HTTP digest (MD5) authorization, WebSocket, WebDAV.
- Experimental HTTP/2 support.
2020-01-03 14:20:16 +01:00
- HTTPS (SSL/TLS) support using [OpenSSL ](https://www.openssl.org/ ).
2016-05-13 23:06:33 +02:00
- Optional support for authentication using client side X.509 certificates.
2020-01-03 14:20:16 +01:00
- Resumed download, URL rewrite, file blacklist, IP-based ACL.
2021-11-11 02:04:25 +13:00
- Can run as a Windows service or systemd service.
2015-04-26 13:23:21 +02:00
- Download speed limit based on client subnet or URI pattern.
2014-07-15 23:01:43 +02:00
- Simple and clean embedding API.
2021-11-11 02:04:25 +13:00
- The source is in single file for drop in compilation.
2015-04-26 13:23:21 +02:00
- Embedding examples included.
- HTTP client capable of sending arbitrary HTTP/HTTPS requests.
2016-05-13 23:06:33 +02:00
- Websocket client functionality available (WS/WSS).
2013-01-01 23:05:09 +00:00
2013-08-21 13:04:26 -04:00
2014-07-15 23:01:43 +02:00
### Optionally included software
2013-08-28 14:41:47 -04:00
2021-11-11 02:04:25 +13:00
[](https://lua.org)
[](https://keplerproject.github.io/luafilesystem/)
[](https://lua.sqlite.org/index.cgi/index)
[](https://sqlite.org)
[](https://github.com/n1tehawk/LuaXML)
[](https://duktape.org)
2017-08-08 00:19:57 +02:00
2021-11-11 02:04:25 +13:00
### Optional dependencies
2017-08-08 00:19:57 +02:00
2021-11-11 02:04:25 +13:00
[zlib ](https://zlib.net )
2017-08-08 00:19:57 +02:00
2021-11-11 02:04:25 +13:00
[OpenSSL ](https://www.openssl.org/ )
2021-04-05 20:10:26 +02:00
2021-11-11 02:04:25 +13:00
[Mbed TLS ](https://github.com/ARMmbed/mbedtls )
2021-04-05 20:10:26 +02:00
2024-12-27 19:56:19 +01:00
[GNU TLS ](https://gnutls.org )
2021-04-05 20:10:26 +02:00
2013-08-28 14:50:40 -04:00
Support
-------
2012-08-25 22:48:14 +01:00
2020-10-03 20:38:05 +02:00
This project is very easy to install and use.
2017-08-08 00:19:57 +02:00
Please read the [documentation ](https://github.com/civetweb/civetweb/blob/master/docs/ )
2017-06-16 14:48:05 +02:00
and have a look at the [examples ](https://github.com/civetweb/civetweb/blob/master/examples/ ).
2014-07-15 23:01:43 +02:00
2020-10-03 20:38:05 +02:00
Recent questions and discussions usually use [GitHub issues ](https://github.com/civetweb/civetweb/issues ).
Some old information may be found on the [mailing list ](https://groups.google.com/d/forum/civetweb ),
but this information may be outdated.
2020-01-03 14:20:16 +01:00
2021-04-05 20:50:58 +02:00
Feel free to create a GitHub issue for bugs, feature requests, questions, suggestions or if you want to share tips and tricks.
When creating an issues for a bug, add enough description to reproduce the issue - at least add CivetWeb version and operating system.
Please see also the guidelines for [Contributions ](https://github.com/civetweb/civetweb/blob/master/docs/Contribution.md ) and the [Security Policy ](https://github.com/civetweb/civetweb/blob/master/SECURITY.md )
2020-01-03 14:20:16 +01:00
Note: We do not take any liability or warranty for any linked contents. Visit these pages and try the community support suggestions at your own risk.
Any link provided in this project (including source and documentation) is provided in the hope that this information will be helpful.
However, we cannot accept any responsibility for any content on an external page.
2017-09-03 23:57:53 +02:00
2013-08-01 14:20:35 +01:00
2013-08-28 14:50:40 -04:00
Contributions
2021-04-05 20:10:26 +02:00
-------------
2013-08-15 20:55:56 -04:00
2013-08-15 21:01:26 -04:00
Contributions are welcome provided all contributions carry the MIT license.
2013-08-15 20:55:56 -04:00
DO NOT APPLY fixes copied from Mongoose to this project to prevent GPL tainting.
2021-11-11 02:04:25 +13:00
Since 2013, CivetWeb and Mongoose have been developed independently.
2018-01-07 23:05:44 +01:00
By now the code base differs, so patches cannot be safely transferred in either direction.
2012-08-25 22:48:14 +01:00
2016-05-13 23:06:33 +02:00
Some guidelines can be found in [docs/Contribution.md ](https://github.com/civetweb/civetweb/blob/master/docs/Contribution.md ).
2015-07-13 22:23:37 +02:00
2016-05-16 17:44:31 +02:00
2021-04-05 20:10:26 +02:00
Authors
-------
2012-08-25 22:48:14 +01:00
2021-11-11 02:04:25 +13:00
CivetWeb was forked from the last MIT version of Mongoose in August 2013.
2020-01-03 14:20:16 +01:00
Since then, CivetWeb has seen many improvements from various authors
2021-01-29 20:13:21 +01:00
(Copyright (c) 2013-2021 the CivetWeb developers, MIT license).
2020-01-03 14:20:16 +01:00
A list of authors can be found in [CREDITS.md ](https://github.com/civetweb/civetweb/blob/master/CREDITS.md ).
2021-11-11 02:04:25 +13:00
CivetWeb is based on the [Mongoose project ](https://github.com/cesanta/mongoose ). The original author of Mongoose was
Sergey Lyubka(2004-2013) who released it under the MIT license.
However, on August 16, 2013,
[Mongoose was relicensed to a dual GPL V2 + commercial license ](https://groups.google.com/forum/#!topic/mongoose-users/aafbOnHonkI )
2021-11-12 07:26:06 +01:00
and CiwetWeb was created by Thomas Davis (sunsetbrew) as "the MIT fork of mongoose".
2021-11-11 02:04:25 +13:00
The license change and CivetWeb fork was mentioned on the Mongoose
2016-12-29 17:57:02 +01:00
[Wikipedia ](https://en.wikipedia.org/wiki/Mongoose_(web_server ))
page as well, but it's getting deleted (and added again) there every
now and then.
2016-05-16 19:04:00 +02:00
2015-07-13 22:23:37 +02:00
Using the CivetWeb project ensures the MIT licenses terms are applied and
2016-12-29 17:57:02 +01:00
GPL cannot be imposed on any of this code, as long as it is sourced from
2014-07-15 23:01:43 +02:00
here. This code will remain free with the MIT license protection.