mirror von https://github.com/civetweb/civetweb.git

Zopolis4 d5f651389a Restrict overmatching MACH ifdef to only trigger on OSX and Mach 2 rokov pred
.github 0671ba4d5c ci: add cifuzz integration 3 rokov pred
Qt 8dcad3dff1 Lua data exchange between different Lua states 7 rokov pred
VisualStudio 14182bd4f4 Provide mg_match() as public interface 3 rokov pred
ci 0911ddd6f3 Fixed a lot of misspellings in source code and documentation 7 rokov pred
cmake afea23abf3 Apply patch for #1024 3 rokov pred
contrib ded3226f0c Update version number in contrib/buildroot/civetweb.mk 6 rokov pred
distribution 25e7595b8f Update repository link: bel2125/civetweb --> civetweb/civetweb 10 rokov pred
docs 454e1c63f5 Fix broken API documentation link 2 rokov pred
examples 51df7f5d1b Add linux websocket server cpp example 3 rokov pred
fuzztest 990f86e063 Update documentation 3 rokov pred
include afb14a5b3e Update rest example to use new mg_match() function 3 rokov pred
resources 8a45e81995 Code analysis: Update to new coverity version 3 rokov pred
src d5f651389a Restrict overmatching MACH ifdef to only trigger on OSX and Mach 2 rokov pred
test 82ba5a04c9 Add "struct" library for processing binary data in Lua pages 3 rokov pred
unittest d5f651389a Restrict overmatching MACH ifdef to only trigger on OSX and Mach 2 rokov pred
zephyr 67cdc2b9be Add Zephyr RTOS support 6 rokov pred
.clang-format f166b4f143 Revert format and update .clang-format file 6 rokov pred
.gitattributes 8f28f092d4 Add fuzz test for client 5 rokov pred
.gitignore ef30e5172b Add kdevelop *.kdev4 to git ignore file 4 rokov pred
.travis.yml 49129465d3 Check if MacOS crash on Travis CI is related to qsort_r 3 rokov pred
CMakeLists.txt 4cf242cf98 Add CMake option for OpenSSL 3.0 (#1079) 2 rokov pred
CREDITS.md 478717fb8e Reset websocket subprotocol for every request 2 rokov pred
LICENSE.md 82ba5a04c9 Add "struct" library for processing binary data in Lua pages 3 rokov pred
Makefile e2fba83a40 Makefile: Ensure each install is idempotent 3 rokov pred
Makefile.osx 9ba511faed Change OS X package from dmg to zip file to fix hdiutil errors in Travis 9 rokov pred
README.md 30dad97955 Update README.md 3 rokov pred
RELEASE_NOTES.md 25f1120e07 docs: typos rectified in RELEASE_NOTES.md 3 rokov pred
SECURITY.md 4d42a5f1c9 Update documentation 3 rokov pred
_config.yml 3265044de0 Set theme jekyll-theme-tactile 8 rokov pred
appveyor.yml ffadb7b8e7 Remove Conan support 3 rokov pred
build adb5b12a54 fix build type in build script 6 rokov pred
build.cmd 1a04ebe805 Fix up log_append in MinGW download script 10 rokov pred
codecov.yml 99e693ad92 Add a codecov.yml 4 rokov pred
format.bat 14182bd4f4 Provide mg_match() as public interface 3 rokov pred
mingw.cmd 668cd8a5a9 Add powershell output to MinGW script log 10 rokov pred

README.md

CivetWeb CivetWeb

The official home of CivetWeb is on GitHub https://github.com/civetweb/civetweb

License GitHub contributors Stargazers Forks Latest Release

Continuous integration for Linux and macOS (Travis CI):

Travis Build Status

Continuous integration for Windows (AppVeyor):

Appveyor Build Status

Test coverage check (coveralls, codecov) (using different tools/settings):

[Coveralls]() Coverage Status codecov

Static source code analysis (Coverity): Coverity Scan Build Status

CodeQL semantic code analysis: CodeQL

Project Mission

Project mission is to provide easy to use, powerful, C (C/C++) embeddable web server with optional CGI, SSL and Lua support. CivetWeb has a MIT license so you can innovate without restrictions.

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 running on a Windows or Linux PC. It is available as single executable, no installation is required.

Where to find the official version?

End users can download CivetWeb binaries / releases from here on GitHub https://github.com/civetweb/civetweb/releases or SourceForge https://sourceforge.net/projects/civetweb/

Developers can contribute to CivetWeb via GitHub https://github.com/civetweb/civetweb

Due to a bug in Git for Windows V2.24 CivetWeb must be used with an earlier or later version (see also here).

Bugs and requests should be filed on GitHub https://github.com/civetweb/civetweb/issues

New releases are announced on Google Groups https://groups.google.com/d/forum/civetweb

Formerly some support question and discussion threads have been at Google groups. Recent questions and discussions use GitHub issues.

Source releases can be found on GitHub https://github.com/civetweb/civetweb/releases

A very brief overview can be found on GitHub Pages https://civetweb.github.io/civetweb/

Quick start documentation

Overview

CivetWeb keeps the balance between functionality and simplicity by a carefully selected list of features:

  • Forked from Mongoose in 2013, before it changed the licence from MIT to commercial + GPL. A lot of enhancements have been added since then, see RELEASE_NOTES.md.
  • Maintains the liberal, permissive, commercial-friendly, 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 other platforms.
  • Scripting and database support (CGI, Lua Server Pages, Server side Lua scripts, Lua SQLite database, Server side JavaScript). This provides a ready to go, powerful web development platform in a one single-click executable with no dependencies. 0
  • Support for CGI, SSI, HTTP digest (MD5) authorization, WebSocket, WebDAV.
  • Experimental HTTP/2 support.
  • HTTPS (SSL/TLS) support using OpenSSL.
  • Optional support for authentication using client side X.509 certificates.
  • Resumed download, URL rewrite, file blacklist, IP-based ACL.
  • Can run as a Windows service or systemd service.
  • Download speed limit based on client subnet or URI pattern.
  • Simple and clean embedding API.
  • The source is in single file for drop in compilation.
  • Embedding examples included.
  • HTTP client capable of sending arbitrary HTTP/HTTPS requests.
  • Websocket client functionality available (WS/WSS).

Optionally included software

Lua LuaFileSystem LuaSQLite3 Sqlite3 LuaXML Duktape

Optional dependencies

zlib

OpenSSL

Mbed TLS

Support

This project is very easy to install and use. Please read the documentation and have a look at the examples.

Recent questions and discussions usually use GitHub issues. Some old information may be found on the mailing list, but this information may be outdated.

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 and the Security Policy

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.

Contributions

Contributions are welcome provided all contributions carry the MIT license.

DO NOT APPLY fixes copied from Mongoose to this project to prevent GPL tainting. Since 2013, CivetWeb and Mongoose have been developed independently. By now the code base differs, so patches cannot be safely transferred in either direction.

Some guidelines can be found in docs/Contribution.md.

Authors

CivetWeb was forked from the last MIT version of Mongoose in August 2013. Since then, CivetWeb has seen many improvements from various authors (Copyright (c) 2013-2021 the CivetWeb developers, MIT license).

A list of authors can be found in CREDITS.md.

CivetWeb is based on the Mongoose project. 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 and CiwetWeb was created by Thomas Davis (sunsetbrew) as "the MIT fork of mongoose". The license change and CivetWeb fork was mentioned on the Mongoose Wikipedia page as well, but it's getting deleted (and added again) there every now and then.

Using the CivetWeb project ensures the MIT licenses terms are applied and GPL cannot be imposed on any of this code, as long as it is sourced from here. This code will remain free with the MIT license protection.