面向微控制器等资源受限设备的精简 Python 3 实现,并提供硬件外设访问模块。
cesanta/mongoose
一个用 C 编写的嵌入式网络库,仅两个文件,提供 TCP/IP 协议栈、TLS 1.3、HTTP、WebSocket、MQTT 与固件 OTA 升级。
- Star
- 13,105
- Fork
- 2,955
- 未关闭 Issue
- 3
- 最近提交
- 前天
这是什么?
Mongoose 是一个面向嵌入式 C/C++ 项目的网络库。它把带驱动的 TCP/IP 协议栈、TLS 1.3、HTTP、WebSocket、MQTT 以及固件 OTA 升级打包在 mongoose.c 和 mongoose.h 两个源文件中,没有外部依赖。它既可以裸机运行,也可以跑在 RTOS 之上,还能架在 lwIP、Zephyr 等现有协议栈上。
支持的硬件包括 STM32、NXP i.MX RT、MCX、RW612、ESP32、树莓派 RP2040/RP2350、Renesas RA、TI 等 MCU,并可在 Linux、macOS 和 Windows 上运行。它采用事件驱动 API,由统一的事件管理循环驱动,每个连接绑定一个处理函数。此外还内置纯 TCP/UDP、SNTP、异步 DNS 和 Modbus-TCP。
项目采用 GPLv2 或商业许可双重授权,商业用户可获得付费技术支持与安全更新。
核心功能
- 01内置 TCP/IP 协议栈,并带有多款 MCU 以太网与 Wi-Fi 芯片的驱动
- 02内置 TLS 1.3,也可使用 mbedTLS、OpenSSL 等外部 TLS 库
- 03支持 HTTP 服务端与客户端、WebSocket 和 MQTT
- 04为多款 STM32、RP2040/RP2350、ESP32 和 NXP 平台提供固件 OTA 升级
- 05源码符合 ISO C 与 C++ 标准,无外部依赖
适用场景
- 为基于 MCU 的设备添加 Web 配置仪表盘
- 将物联网设备的遥测数据通过 MQTT 发送到消息代理
- 向嵌入式硬件推送无线固件升级
- 在资源受限的开发板上提供轻量 REST API
快速上手
- 1
将 mongoose.c 和 mongoose.h 复制到你的项目中
- 2
编写包含 mongoose.h 并设置事件循环的 main.c
- 3
使用 C 编译器构建程序
cc main.c mongoose.c
使用前须知
- 采用 GPLv2 或商业双重许可,因此闭源产品需要购买商业许可证。
- 商业支持和提前获得的安全修复仅通过付费许可提供。
收录于专题
标签
常见问题
- mongoose 是什么?
- 一个用 C 编写的嵌入式网络库,仅两个文件,提供 TCP/IP 协议栈、TLS 1.3、HTTP、WebSocket、MQTT 与固件 OTA 升级。 Mongoose 是一个面向嵌入式 C/C++ 项目的网络库。它把带驱动的 TCP/IP 协议栈、TLS 1.3、HTTP、WebSocket、MQTT 以及固件 OTA 升级打包在 mongoose.c 和 mongoose.h 两个源文件中,没有外部依赖。它既可以裸机运行,也可以跑在 RTOS 之上,还能架在 lwIP、Zephyr 等现有协议栈上。
- mongoose 可以免费使用吗?用的什么许可证?
- mongoose 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- mongoose 还在维护吗?
- 活跃维护中。mongoose 最近一次提交是在 2026年10月23日。
- mongoose 适合用来做什么?
- 为基于 MCU 的设备添加 Web 配置仪表盘 将物联网设备的遥测数据通过 MQTT 发送到消息代理 向嵌入式硬件推送无线固件升级 在资源受限的开发板上提供轻量 REST API
- mongoose 怎么安装和运行?
- 将 mongoose.c 和 mongoose.h 复制到你的项目中 编写包含 mongoose.h 并设置事件循环的 main.c 使用 C 编译器构建程序: cc main.c mongoose.c
- 在哪里获取 mongoose?
- 源代码和安装说明在 GitHub 上:https://github.com/cesanta/mongoose
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 LLVM 的 Go 编译器,面向微控制器、WebAssembly 和命令行工具。
用 YAML 配置文件控制 ESP32、ESP8266 等微控制器,并接入 Home Assistant 等智能家居系统。
基于 ESP32-CAM 的设备,拍摄水表、燃气表、电表等机械表盘,并在设备端用 AI 识别读数转为数字值。
一款支持 TLS 的交互式拦截 HTTP 代理,提供终端、命令行和 Web 三种界面,用于查看 HTTP/1、HTTP/2 和 WebSocket 流量。
为 xiaozhi-esp32 ESP32 语音硬件提供后端服务,支持 MQTT+UDP、WebSocket、MCP 接入与声纹识别。