Mongoose is an embedded web server and network library that provides a complete networking stack for IoT devices and microcontrollers.
The tool solves the problem of adding network connectivity to embedded systems without requiring external dependencies. It accomplishes this by offering either a built-in TCP/IP stack for bare-metal and RTOS environments, or the ability to run on top of existing stacks like lwIP and Zephyr that support BSD sockets. The library includes implementations of multiple protocols—HTTP, MQTT, WebSocket, SNTP, Modbus-TCP, and plain TCP/UDP—along with built-in TLS 1.3 support with ECC cryptography, eliminating the need to integrate separate security libraries.
Mongoose suits developers building IoT devices, embedded web servers, firmware update systems, MQTT telemetry solutions, and REST APIs on microcontrollers. The tool is particularly valuable for projects requiring cross-platform compatibility, as the same codebase runs on diverse hardware including STM32, NXP, ESP32, Nordic, TI, Microchip, Infineon, and Renesas microcontrollers, as well as Linux, macOS, and Windows. It is designed for environments with tight resource constraints, offering a minimal static and runtime footprint while maintaining ISO C and C++ compliance. The library integrates easily into existing projects and can optionally use external TLS libraries like mbedTLS or OpenSSL if preferred. Built-in firmware update support is provided for multiple platforms including STM32 H5, STM32 H7, NXP IMXRT, RP2040, RP2350, and ESP32.
The project maintains active development with regular security updates and commercial support available. The codebase demonstrates long-term stability, having been in production use since 2004 across numerous open-source and commercial products, including deployment on the International Space Station. The maintainers provide comprehensive documentation, video resources, and case studies on the project website.