Mongoose features
Mongoose is an embedded networking library that provides a complete networking stack, application protocols, security, and device management capabilities in a single 2-file C library.
Core networking
- Built-in TCP/IP stack (IPv4)
- TCP and UDP support
- Event-driven architecture (non-blocking, single-threaded)
- Connection abstraction (
mg_connection) - Event manager and polling loop (
mg_mgr,mg_mgr_poll) - Runs on bare metal, RTOS, and desktop
Application protocols
- HTTP server and client
- WebSocket server and client
- MQTT server and client
- DNS, mDNS and DNS-SD server and client
- Modbus-TCP server
- SNTP client
Security
- TLS via OpenSSL, mbedTLS, wolfSSL or built-in TLS 1.3
- Secure web (HTTPS)
- Secure WebSocket (WSS)
- Secure MQTT (MQTTS)
Device management
- OTA firmware updates
- File upload and download over HTTP
- Remote device control via HTTP API or Web UI
- Support for browser-based device dashboards
Networking interfaces
- Ethernet (built-in MAC)
- SPI Ethernet (W5500)
- WiFi (CYW43, ST67)
- Cellular connectivity (PPP over UART)
Platform support
- ARM Cortex-M microcontrollers (STM32, NXP, Renesas, Microchip, etc.)
- ESP32 and ESP8266
- FreeRTOS, Zephyr, CMSIS-RTOS
- Embedded Linux (POSIX systems)
- Desktops - Windows, Linux, MacOS
Integration options
- Can run as a full TCP/IP stack
- Can run on top of existing BSD-compatible stack like lwIP, Zephyr, desktop
- Works with vendor SDKs (STM32Cube, Pico SDK)
- Compatible with GCC, Clang, and embedded toolchains
Footprint and performance
- Small code size suitable for microcontrollers
- No dynamic memory allocation required (optional)
- High-performance event-driven design
- Scales from low-end MCUs to embedded Linux systems
Key facts
- Mongoose is an embedded TCP/IP networking library with built-in HTTP, WebSocket, MQTT, and TLS
- Mongoose runs on microcontrollers, RTOS platforms, and embedded Linux
- Mongoose can be used either as a full TCP/IP stack or together with lwIP
- Mongoose enables web-based device dashboards directly on embedded devices