2016-06-28 23:53:10 +08:00
# Mongoose - Embedded Web Server / Embedded Networking Library
2012-08-26 05:48:14 +08:00
2020-12-05 19:46:12 +08:00
![License: GPLv2 ](https://img.shields.io/badge/license-GPL_2-green.svg "License" )
[![Build Status ](https://travis-ci.org/cesanta/mongoose.svg?branch=7.0 )](https://travis-ci.org/cesanta/mongoose)
[![Code Coverage ](https://codecov.io/gh/cesanta/mongoose/branch/7.0/graph/badge.svg )](https://codecov.io/gh/cesanta/mongoose)
2014-04-10 01:10:49 +08:00
2015-12-21 19:13:48 +08:00
Mongoose is ideal for embedded environments. It has been designed
2016-04-12 23:06:29 +08:00
for connecting devices and bringing them online. On the market since 2004,
used by vast number of open source and
2020-12-05 19:41:23 +08:00
commercial products - it even runs on the International Space Station!
2016-04-12 23:06:29 +08:00
Mongoose makes embedded network programming fast, robust, and easy.
2014-04-10 01:10:49 +08:00
2017-07-17 20:10:24 +08:00
- [Download Mongoose Source Code here ](https://www.cesanta.com/download.html )
2015-08-20 15:56:14 +08:00
2020-12-05 19:41:23 +08:00
Connectivity is vital for software and embedded devices, but there are many
pitfalls to consider when embedding a web server. This white paper breaks down
on the top 9 things to avoid when embedding a web server.
2020-06-25 00:08:35 +08:00
- [Download “9 Things NOT to do when embedding a web server” white paper here ](https://www.cesanta.com/whitepaper.html )
2020-12-05 19:41:23 +08:00
Looking for a complete IoT solution? Check out
- [Mongoose OS ](https://mongoose-os.com ) - open source embedded operating system for low-power connected microcontrollers. Secure, designed for commercial Internet of Things products
- [VCON ](https://vcon.io ) - Arduino compatible MCU modules with built-in firmware OTA updates
2016-10-18 19:35:47 +08:00
# Support
2017-02-06 21:58:53 +08:00
- [Study mongoose example code ](https://github.com/cesanta/mongoose/tree/master/examples )
2018-01-30 05:05:14 +08:00
- [Read User Guide and API reference ](https://cesanta.com/docs/overview/intro.html )
2020-12-05 19:41:23 +08:00
- [Support Forum - ask your technical questions here ](https://forum.cesanta.com/c/mongoose-library/6 )
2017-07-17 20:10:24 +08:00
- [Commercial licensing and support available ](https://www.cesanta.com/licensing.html )
- [Check our latest releases ](https://github.com/cesanta/mongoose/releases )
2013-01-02 07:05:09 +08:00
2015-09-08 19:49:03 +08:00
# Features
2015-12-22 15:46:05 +08:00
* Cross-platform: works on Linux/UNIX, MacOS, QNX, eCos, Windows, Android,
2020-12-05 19:41:23 +08:00
iPhone, FreeRTOS, etc
2016-10-19 22:33:08 +08:00
* Supported hardware platforms: TI CC3200, TI MSP432, NRF52, STM32, PIC32, ESP8266, ESP32 and more
2015-09-08 19:49:03 +08:00
* Builtin protocols:
- plain TCP, plain UDP, SSL/TLS (over TCP, one-way or two-way)
- HTTP client, HTTP server
2016-03-04 23:08:19 +08:00
- WebSocket client, WebSocket server
2020-12-05 19:41:23 +08:00
- MQTT client
- DNS client, async DNS resolver
2016-10-19 22:33:08 +08:00
* Single-threaded, asynchronous, non-blocking core with simple event-based API
2020-12-05 19:41:23 +08:00
* Native support for [LWIP embedded TCP/IP stack ](https://en.wikipedia.org/wiki/LwIP )
2015-09-08 19:49:03 +08:00
* Tiny static and run-time footprint
* Source code is both ISO C and ISO C++ compliant
* Very easy to integrate: just copy
[mongoose.c ](https://raw.githubusercontent.com/cesanta/mongoose/master/mongoose.c ) and
[mongoose.h ](https://raw.githubusercontent.com/cesanta/mongoose/master/mongoose.h )
files to your build tree
2016-03-04 23:08:19 +08:00
# Licensing
2016-10-19 22:33:08 +08:00
Mongoose is released under Commercial and [GNU GPL v.2 ](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html ) open source licenses.
2016-03-04 23:08:19 +08:00
2017-07-17 20:10:24 +08:00
Commercial Projects: [Contact us for commercial license. ](https://www.cesanta.com/contact.html )
2015-09-08 19:49:03 +08:00
2015-08-18 16:50:00 +08:00
# Dashboard Example
2014-03-12 00:59:17 +08:00
2015-09-21 22:16:16 +08:00
Mongoose is often used to implement device dashboards and real-time
data exchange over Websocket. Here is a dashboard example that illustrates
the functionality:
2017-07-17 20:10:24 +08:00
![](http://www.cesanta.com/images/dashboard.png)
2014-03-12 00:59:17 +08:00
2017-07-17 20:10:24 +08:00
[Developing a new product? Contact us today to discuss how Mongoose can help. ](https://www.cesanta.com/contact.html )
2014-03-12 00:59:17 +08:00
2016-03-01 18:41:24 +08:00
# Contributions
2020-02-13 18:20:05 +08:00
Contributions are welcome! Please follow the guidelines below:
- Sign [Cesanta CLA ](https://cesanta.com/cla.html ) and send GitHub pull request
- When making pull requests, please make sure that it has only one commit,
and imlements/fixes only one piece of functionality
2016-03-01 18:41:24 +08:00
2016-10-19 22:33:08 +08:00
# Looking for a pre-compiled Mongoose web server Windows or Mac binary?
2017-07-17 20:10:24 +08:00
- [Download pre-compiled Mongoose web server binary. ](https://www.cesanta.com/binary.html )