civetweb/README.md

163 lines
8.3 KiB
Markdown
Raw Normal View History

2017-05-09 00:20:35 +02:00
![CivetWeb](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/civetweb_64x64.png "CivetWeb") CivetWeb
2013-08-28 14:50:40 -04:00
=======
2016-05-16 19:56:14 +02:00
**The official home of CivetWeb is [https://github.com/civetweb/civetweb](https://github.com/civetweb/civetweb)**
2016-05-16 17:44:31 +02:00
2017-08-08 00:19:57 +02:00
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![GitHub contributors](https://img.shields.io/github/contributors/civetweb/civetweb.svg)](https://github.com/civetweb/civetweb/blob/master/CREDITS.md)
2016-05-16 17:44:31 +02:00
2016-05-16 19:56:14 +02:00
Continuous integration for Linux and OSX ([Travis CI](https://travis-ci.org/civetweb/civetweb)):
2015-07-13 22:23:37 +02:00
[![Travis Build Status](https://travis-ci.org/civetweb/civetweb.svg?branch=master)](https://travis-ci.org/civetweb/civetweb)
2016-05-13 23:06:33 +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
[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/github/civetweb/civetweb?svg=true)](https://ci.appveyor.com/project/civetweb/civetweb/branch/master)
2016-05-13 23:06:33 +02:00
2016-05-16 19:56:14 +02:00
Test coverage check ([coveralls](https://coveralls.io/github/civetweb/civetweb)) (currently in a setup phase):
2016-05-13 23:06:33 +02:00
[![Coveralls](https://img.shields.io/coveralls/civetweb/civetweb.svg?maxAge=3600)]()
[![Coverage Status](https://coveralls.io/repos/github/civetweb/civetweb/badge.svg?branch=master)](https://coveralls.io/github/civetweb/civetweb?branch=master)
2016-12-29 17:57:02 +01:00
Static source code analysis ([Coverity](https://scan.coverity.com/projects/5784)):
2016-05-16 19:56:14 +02:00
[![Coverity Scan Build Status](https://scan.coverity.com/projects/5784/badge.svg)](https://scan.coverity.com/projects/5784)
2015-04-26 13:23:21 +02:00
2013-08-28 14:50:40 -04:00
Project Mission
-----------------
2012-08-25 22:48:14 +01:00
2015-04-26 13:23:21 +02:00
Project mission is to provide easy to use, powerful, 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.
It can also be used by end users as a stand-alone web server. It is available as single executable, no installation is required.
2013-01-01 23:05:09 +00:00
2013-08-28 14:50:40 -04:00
Where to find the official version?
-----------------------------------
2017-08-08 00:19:57 +02:00
End users can download CivetWeb releases at SourceForge
2016-05-16 19:56:14 +02:00
[https://sourceforge.net/projects/civetweb/](https://sourceforge.net/projects/civetweb/)
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-21 12:46:14 -04:00
Trouble tickets 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)
2015-04-26 13:23:21 +02:00
Discussion/support group and announcements are at Google Groups
2016-05-16 19:56:14 +02:00
[https://groups.google.com/d/forum/civetweb](https://groups.google.com/d/forum/civetweb)
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
[http://civetweb.github.io/civetweb/](http://civetweb.github.io/civetweb/)
2015-07-13 22:23:37 +02:00
2013-08-28 14:50:40 -04:00
Quick start documentation
--------------------------
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)
- [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.
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)).
- [RELEASE_NOTES.md](https://github.com/civetweb/civetweb/blob/master/RELEASE_NOTES.md) - Release Notes
- [LICENSE.md](https://github.com/civetweb/civetweb/blob/master/LICENSE.md) - Copyright License
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
2013-08-28 13:43:48 -04:00
- Liberal, commercial-friendly, permissive,
2013-01-17 11:07:53 +00:00
[MIT license](http://en.wikipedia.org/wiki/MIT_License)
2015-04-26 13:23:21 +02:00
- Free from copy-left licenses, like GPL, because you should innovate without
restrictions.
- Forked from [Mongoose](https://code.google.com/p/mongoose/) in 2013, before
it changed the licence from MIT to commercial + GPL. A lot of enchancements
have been added since that time, see
[RELEASE_NOTES.md](https://github.com/civetweb/civetweb/blob/master/RELEASE_NOTES.md).
2015-04-26 13:23:21 +02:00
- Works on Windows, Mac, Linux, UNIX, iPhone, Android, Buildroot, and many
other platforms.
- Scripting and database support (Lua scipts, Lua Server Pages, CGI + SQLite
2016-05-13 23:06:33 +02:00
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
single-click executable with **no dependencies**.
2016-05-13 23:06:33 +02:00
- Support for CGI, HTTPS (SSL/TLS), SSI, HTTP digest (MD5) authorization, Websocket,
2015-04-26 13:23:21 +02:00
WEbDAV.
2016-05-13 23:06:33 +02:00
- Optional support for authentication using client side X.509 certificates.
2015-04-26 13:23:21 +02:00
- Resumed download, URL rewrite, file blacklist, IP-based ACL, Windows service.
- Download speed limit based on client subnet or URI pattern.
2014-07-15 23:01:43 +02:00
- Simple and clean embedding API.
2015-04-26 13:23:21 +02:00
- The source is in single file to make things easy.
- 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
2017-08-08 00:19:57 +02:00
[![Lua](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/lua-logo.jpg "Lua Logo")](http://lua.org)
[![Sqlite3](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/sqlite3-logo.jpg "Sqlite3 Logo")](http://sqlite.org)
[![LuaFileSystem](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/luafilesystem-logo.jpg "LuaFileSystem Logo")](http://keplerproject.github.io/luafilesystem/)
[![LuaSQLite3](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/luasqlite-logo.jpg "LuaSQLite3 Logo")](http://lua.sqlite.org/index.cgi/index)
[![LuaXML](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/luaxml-logo.jpg "LuaXML Logo")](http://viremo.eludi.net/LuaXML/index.html)
[![Duktape](https://raw.githubusercontent.com/civetweb/civetweb/master/resources/duktape-logo.png "Duktape Logo")](http://duktape.org)
2013-07-21 10:09:47 +01:00
2015-07-13 22:23:37 +02:00
2013-08-28 14:50:40 -04:00
Support
-------
2012-08-25 22:48:14 +01:00
2017-08-08 00:19:57 +02:00
This project is very easy to install and use.
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
More information may be found on the [mailing list](https://groups.google.com/d/forum/civetweb).
2013-08-01 14:20:35 +01:00
2013-08-28 14:50:40 -04:00
Contributions
---------------
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.
2017-08-08 00:19:57 +02:00
Since 2013, CivetWeb and Mongoose are developed independently.
2016-12-29 17:57:02 +01:00
By now the code base differs, so patches cannot be safely transfered 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
2016-05-13 23:06:33 +02:00
### Authors
2012-08-25 22:48:14 +01:00
2015-07-13 22:23:37 +02:00
CivetWeb is based on the Mongoose project. The original author of Mongoose was
2016-05-16 17:44:31 +02:00
Sergey Lyubka (Copyright (c) 2004-2013 Sergey Lyubka, MIT license).
2016-05-13 23:06:33 +02:00
2016-05-16 19:04:00 +02:00
However, in August 16, 2013, the [license of Mongoose has been changed](https://groups.google.com/forum/#!topic/mongoose-users/aafbOnHonkI)
2016-05-13 23:06:33 +02:00
after writing and distributing the original code this project is based on.
2016-12-29 17:57:02 +01:00
The license change and CivetWeb used to be mentioned on the Mongoose
[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
2016-12-29 17:57:02 +01:00
CivetWeb has been forked from the last MIT version of Mongoose.
Since 2013, CivetWeb has seen many improvements from various authors
2017-01-02 18:48:39 +01:00
(Copyright (c) 2013-2017 the CivetWeb developers, MIT license).
2016-05-16 19:04:00 +02:00
A list of authors can be found in [CREDITS.md](https://github.com/civetweb/civetweb/blob/master/CREDITS.md).
2013-08-15 20:55:56 -04: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.
2017-08-08 00:19:57 +02:00