mongoose
Mongoose is a network library for C/C++. It provides event-driven non-blocking APIs for TCP, UDP, HTTP, WebSocket, MQTT, and other protocols.
Table of Contents:
- Overview
- Cross-Platform Compatibility
- Key Features
- Protocols and Capabilities
- Integration and Usability
- Support and Resources
1. Overview
Mongoose is a robust network library designed for embedded network programming. It has been on the market since 2004 and is utilized in a wide array of both open source and commercial products, including operation on the International Space Station. It facilitates the development of device connectivity and network communications.
2. Cross-Platform Compatibility
- Operating Systems: Linux/UNIX, macOS, Windows, Android.
- Microcontrollers and Hardware: STM32, NXP, ESP32, NRF52, TI, Microchip, and others.
- Portability: Write your code once and run it across various platforms, making it ideal for standardizing network infrastructure code across an organization.
3. Key Features
- Minimal Footprint: Tiny static and runtime memory requirements.
- Source Code Compliance: Compatible with ISO C and ISO C++ standards.
- Asynchronous Operations: Includes an asynchronous DNS resolver.
4. Protocols and Capabilities
- Supported Protocols: TCP/UDP, SNTP, HTTP, MQTT, WebSocket, and others.
- Built-In TCP/IP Stack: Includes drivers for bare metal or RTOS systems, supporting a variety of hardware platforms.
- TLS Support: Built-in TLS 1.3 ECC stack, with the option to integrate external TLS libraries such as mbedTLS or OpenSSL.
5. Integration and Usability
- Ease of Integration: Easily integrated by adding the mongoose.c and mongoose.h files to your source tree.
- Example: A complete Web device dashboard on bare metal ST Nucleo boards requires only 6 files, compared to 400+ files in a typical CubeIDE-generated HTTP example.
- Firmware Updates: Includes built-in firmware update capabilities for certain STM32 models.
6. Support and Resources
- Documentation and Support: Comprehensive resources available at Mongoose's official website, including complete documentation, instructional videos, and case studies.