intro.md 1.28 KB
Newer Older
1
# Introduction
2

3 4
Mongoose is a networking library written in C.
It is a swiss army knife for embedded network programming.
Marko Mikulicic's avatar
Marko Mikulicic committed
5 6
It implements event-driven non-blocking APIs for TCP, UDP, HTTP,
WebSocket, CoAP, MQTT for client and server mode.
7 8 9
Features include:

- Cross-platform: works on Linux/UNIX, MacOS, QNX, eCos, Windows, Android,
10
  iPhone, FreeRTOS
11 12
- Native support for [PicoTCP embedded TCP/IP stack](http://www.picotcp.com),
  [LWIP embedded TCP/IP stack](https://en.wikipedia.org/wiki/LwIP)
13 14 15
- Works on a variety of embedded boards: TI CC3200, TI MSP430, STM32, ESP8266;
  on all Linux-based boards like Raspberry PI, BeagleBone, etc
- Single-threaded, asynchronous, non-blocking core with simple event-based API
Marko Mikulicic's avatar
Marko Mikulicic committed
16
- Built-in protocols:
17
   - plain TCP, plain UDP, SSL/TLS (one-way or two-way), client and server
18 19 20 21 22 23
   - HTTP client and server
   - WebSocket client and server
   - MQTT client and server
   - CoAP client and server
   - DNS client and server
   - asynchronous DNS resolver
24 25 26 27 28 29
- 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