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.

Mongoose
Original author(s)Sergey Lyubka
Developer(s)Cesanta Software Limited[1]
Stable release
6.17 / February 11, 2020 (2020-02-11)
Repository
Written inC
Operating systemCross-platform [2]
TypeWeb server
LicenseDual license: GPLv2 and commercial license[3]
Websitewww.cesanta.com

The small footprint of the software enables any Internet-connected device to function as a web server.[4] 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.[2]

Via an API, Mongoose can be embedded into other programs.[5]

Users

Mongoose is used by several companies[6] in various industries.[1]

Functions

Functions of Mongoose include:[7]

  • 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[8]
  • 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[9][10] from the MIT license to a dual GPLv2/commercial licensing scheme.[11] After the license change, Mongoose was forked, and these forks eventually diverged significantly with new features added.

References

  1. Newenham, Pamela (March 21, 2013). "Conditions ripe in Ireland for growth of internet of things". The Irish Times. Retrieved July 1, 2016.
  2. 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.
  3. "Mongoose license".
  4. Newenham, Pamela (March 21, 2013). "Conditions ripe in Ireland for growth of internet of things". The Irish Times. Retrieved July 1, 2016.
  5. 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)
  6. "Mongoose - Case Studies". cesanta.com. Retrieved 2019-05-17.
  7. 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
  8. "Company Overview of Cesanta Software Limited". Bloomberg. Retrieved 30 June 2016.
  9. "License change · cesanta/mongoose@2184286". GitHub. Retrieved 2019-05-17.
  10. "License change · cesanta/mongoose@587aad7". GitHub. Retrieved 2019-05-17.
  11. "Google Groups". groups.google.com. Retrieved 2019-05-17.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.