Una implementación ligera de Python 3 para microcontroladores y otros dispositivos con recursos limitados, con módulos para acceder al hardware.
cesanta/mongoose
Biblioteca de redes embebidas en C, distribuida en dos archivos, con stack TCP/IP, TLS 1.3, HTTP, WebSocket, MQTT y actualizaciones OTA de firmware para microcontroladores.
- Estrellas
- 13,105
- Forks
- 2,955
- Issues abiertos
- 3
- Último commit
- anteayer
¿Qué es?
Mongoose es una biblioteca de redes para proyectos embebidos en C/C++. Incluye un stack TCP/IP con drivers, TLS 1.3, HTTP, WebSocket, MQTT y actualizaciones OTA de firmware en dos archivos fuente, mongoose.c y mongoose.h, sin dependencias externas. Puede ejecutarse directamente sobre el hardware o con un RTOS, y también puede funcionar sobre un stack existente, como lwIP o Zephyr.
La biblioteca está dirigida a microcontroladores de las familias STM32, NXP i.MX RT, MCX y RW612, así como ESP32, Raspberry Pi RP2040/RP2350, Renesas RA y componentes de TI; también es compatible con Linux, macOS y Windows. Su API basada en eventos utiliza un único bucle del gestor de eventos y una función manejadora por conexión. Los protocolos integrados también incluyen TCP/UDP sin cifrar, SNTP, DNS asíncrono y Modbus-TCP.
El proyecto cuenta con una doble licencia: GPLv2 o una licencia comercial. El proveedor ofrece soporte de pago y actualizaciones de seguridad para usuarios comerciales.
Funciones clave
- 01Stack TCP/IP integrado con drivers para numerosos chips Ethernet y Wi-Fi para MCU
- 02TLS 1.3 integrado, o uso de mbedTLS y OpenSSL externos
- 03Compatibilidad con servidor y cliente HTTP, WebSocket y MQTT
- 04Actualizaciones OTA de firmware para varias plataformas STM32, RP2040/2350, ESP32 y NXP
- 05Código fuente en ISO C y C++ puro, sin dependencias externas
Casos de uso
- Añadir un panel web de configuración a un dispositivo basado en microcontrolador
- Enviar telemetría desde un dispositivo IoT a un broker MQTT
- Distribuir actualizaciones OTA de firmware a hardware embebido
- Ofrecer una API REST pequeña desde una placa con recursos limitados
Inicio rápido
- 1
Copia mongoose.c y mongoose.h en tu proyecto
- 2
Escribe un main.c que incluya mongoose.h y configure un bucle de eventos
- 3
Compila el programa con el compilador de C
cc main.c mongoose.c
Antes de usarlo
- Está disponible bajo una licencia dual, GPLv2 o una licencia comercial, por lo que los productos de código cerrado necesitan una licencia comercial de pago.
- El soporte comercial y las correcciones de seguridad anticipadas solo están disponibles mediante una licencia de pago.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es mongoose?
- Biblioteca de redes embebidas en C, distribuida en dos archivos, con stack TCP/IP, TLS 1.3, HTTP, WebSocket, MQTT y actualizaciones OTA de firmware para microcontroladores. Mongoose es una biblioteca de redes para proyectos embebidos en C/C++. Incluye un stack TCP/IP con drivers, TLS 1.3, HTTP, WebSocket, MQTT y actualizaciones OTA de firmware en dos archivos fuente, mongoose.c y mongoose.h, sin dependencias externas. Puede ejecutarse directamente sobre el hardware o con un RTOS, y también puede funcionar sobre un stack existente, como lwIP o Zephyr.
- ¿mongoose es gratuito? ¿Qué licencia tiene?
- mongoose es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿mongoose sigue mantenido?
- Mantenimiento activo. El último commit de mongoose fue el 23 oct 2026.
- ¿Para qué puedo usar mongoose?
- Añadir un panel web de configuración a un dispositivo basado en microcontrolador Enviar telemetría desde un dispositivo IoT a un broker MQTT Distribuir actualizaciones OTA de firmware a hardware embebido Ofrecer una API REST pequeña desde una placa con recursos limitados
- ¿Cómo se instala mongoose?
- Copia mongoose.c y mongoose.h en tu proyecto Escribe un main.c que incluya mongoose.h y configure un bucle de eventos Compila el programa con el compilador de C: cc main.c mongoose.c
- ¿Dónde consigo mongoose?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/cesanta/mongoose
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un compilador de Go basado en LLVM que genera código para microcontroladores, WebAssembly (WASM/WASI) y herramientas de línea de comandos.
Sistema basado en configuración que convierte microcontroladores ESP32, ESP8266, BK72xx y RP2040 en dispositivos inteligentes controlados desde Home Assistant y otros sistemas de domótica.
Dispositivo basado en ESP32-CAM que fotografía medidores analógicos de agua, gas o electricidad y usa IA integrada para convertir las lecturas en valores digitales.
Proxy HTTP interactivo con capacidad para interceptar TLS e interfaces de consola, línea de comandos y web para inspeccionar tráfico HTTP/1, HTTP/2 y WebSocket.
Servidor backend en Python/Java/Vue para dispositivos de voz xiaozhi-esp32 con ESP32, compatible con MQTT+UDP, WebSocket, MCP, reconocimiento de voz y bases de conocimiento.