Mongoose库是一款轻量级的C语言HTTP服务器框架,适用于资源有限的嵌入式系统或IoT设备。它支持WebSocket和文件上传等功能,易于集成与使用。
嵌入式设备常用第三方网络库Mongoose为TCP、UDP、HTTP、WebSocket、CoAP、MQTT提供了轻量级框架支持,适用于多种嵌入式板卡如TI CC3200, TI MSP430, STM32和ESP8266;同时在基于Linux的开发板上也适用,例如Raspberry PI或BeagleBone等。Mongoose具备简单事件驱动API,并采用单线程、异步及非阻塞内核设计。
内置协议包括:
- 普通TCP与UDP
- SSL/TLS(含单向和双向)
- HTTP客户端和服务端
- WebSocket客户端和服务端
- MQTT客户端和服务端
- CoAP客户端和服务端
- DNS客户端和服务端
此外,Mongoose还提供异步DNS解析功能。它具有极小的静态及运行时占用空间,并且源代码遵循ISO C与ISO C++标准。
集成简便:只需将mongoose.c和mongoose.h文件复制至构建树中即可使用。
对于基本数据结构,Mongoose定义了三种类型:
- `struct mg_mgr`用于保存所有活动连接及其事件管理;
- `struct mg_connection`表示单个网络连接;
- `struct mbuf`描述接收或发送的数据缓冲区。