---
title: "mongoose"
url: "https://maker.wiznet.io/irina/projects/mongoose/"
markdown_url: "https://maker.wiznet.io/irina/projects/mongoose/md"
type: "UCC: User Created Content"
author: "cesanta"
author_url: "https://github.com/cesanta/mongoose"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "cesanta"
original_url: "https://github.com/cesanta/mongoose"
published: "2024-05-03"
language: "en"
likes: 0
views: 455
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# 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.

Original author: cesanta (source: https://github.com/cesanta/mongoose)

## Article

**Table of Contents:**

1. **Overview**

2. **Cross-Platform Compatibility**

3. **Key Features**

4. **Protocols and Capabilities**

5. **Integration and Usability**

6. **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](https://mongoose.ws/), including complete documentation, instructional videos, and case studies.

---

Source: https://maker.wiznet.io/irina/projects/mongoose/
