Mongoose (web server)
Mongoose is a cross-platform embedded web server and networking library with functions including TCP, a HTTP client + server, WebSocket client + server, MQTT client + broker and more.
Original author(s) | Sergey Lyubka |
---|---|
Developer(s) | Cesanta Software Limited[1] |
Stable release | 6.18
/ May 21, 2020[2] |
Repository | |
Written in | C |
Operating system | Cross-platform [3] |
Type | Web server |
License | Dual license: GPLv2 and commercial license[4] |
Website | www |
The small footprint of the software enables any Internet-connected device to function as a web server.[5] Mongoose is available under GPLv2 and commercial licenses.
Overview
Mongoose is built on top of the Mongoose Embedded Library which can be used for the implementation of RESTful services to, for example, serve Web-UIs on embedded devices or create RPC frameworks (e.g. JSON-RPC). Mongoose is primarily supported on Windows, MacOS, Linux, QNX, eCOS, FreeRTOS, Android and iOS.[3]
Via an API, Mongoose can be embedded into other programs.[6]
Functions
The advertised functions of Mongoose include:[8]
- Cross-platform, support for Unix/Linux, *BSD, eCos, Windows, OS X, QNX and more
- CGI, SSI, Digest (MD5) authorization, WebSocket, WebDAV support
- Resumed download, URL rewriting support, HTTP proxy support
- SSL support, both one-way and two-way SSL
- IP address-based ACL, Windows service, GET, POST, HEAD, PUT, DELETE methods
- Excluding files from serving by URI pattern
- HTTP client functionality
- MQTT client and broker functionality
- WebSocket client and broker functionality
- DNS client and server functionality
- Source code is both ISO C and ISO C++ compliant[9]
- Single-threaded, asynchronous, non-blocking core with simple event-based API
- Native support for PicoTCP embedded TCP/IP stack, LWIP embedded TCP/IP stack
License change
In August 2013, the license was changed[10][11] from the MIT license to a dual GPLv2/commercial licensing scheme.[12] After the license change, Mongoose was forked, and these forks eventually diverged significantly with new features added. A notable fork due to this change is civetweb.
References
- Newenham, Pamela (March 21, 2013). "Conditions ripe in Ireland for growth of internet of things". The Irish Times. Retrieved July 1, 2016.
- "Releases · cesanta/mongoose · GitHub". Retrieved 11 August 2020.
- Oehlman, D.; Blanc, S. (2011). Pro Android Web Apps: Develop for Android using HTML5, CSS3 & JavaScript. Apresspod Series. Apress. pp. 9–11. ISBN 978-1-4302-3276-6.
- "Mongoose license".
- Newenham, Pamela (March 21, 2013). "Conditions ripe in Ireland for growth of internet of things". The Irish Times. Retrieved July 1, 2016.
- Hammel, Michael J, Griffiths. (May 16, 2019). "Mongoose OS - reduce IoT firmware development time up to 90%". Mongoose OS. Retrieved May 16, 2019.CS1 maint: multiple names: authors list (link)
- "Mongoose - Case Studies". cesanta.com. Retrieved 2019-05-17.
- Mongoose Embedded Web Server Library: Mongoose is more than an embedded webserver. It is a multi-protocol embedded networking library with functions including TCP, HTTP client and server, WebSocke.., Cesanta Software, 2019-05-22, retrieved 2019-05-22
- "Company Overview of Cesanta Software Limited". Bloomberg. Retrieved 30 June 2016.
- "License change · cesanta/mongoose@2184286". GitHub. Retrieved 2019-05-17.
- "License change · cesanta/mongoose@587aad7". GitHub. Retrieved 2019-05-17.
- "Google Groups". groups.google.com. Retrieved 2019-05-17.