Repolode
cesanta

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

    将 mongoose.c 和 mongoose.h 复制到你的项目中

  2. 2

    编写包含 mongoose.h 并设置事件循环的 main.c

  3. 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 数据每日更新。

相关项目