Uma implementação enxuta de Python 3 que roda em microcontroladores e outros dispositivos com recursos limitados, com módulos para acesso ao hardware.
cesanta/mongoose
Biblioteca de rede embarcada em C, distribuída em dois arquivos, com pilha TCP/IP, TLS 1.3, HTTP, WebSocket, MQTT e atualizações OTA de firmware para microcontroladores.
- Estrelas
- 13,105
- Forks
- 2,955
- Issues abertas
- 3
- Último commit
- anteontem
O que é?
Mongoose é uma biblioteca de rede para projetos embarcados em C/C++. Ela reúne uma pilha TCP/IP com drivers, TLS 1.3, HTTP, WebSocket, MQTT e atualizações OTA de firmware em dois arquivos-fonte, mongoose.c e mongoose.h, sem dependências externas. Pode rodar em bare metal ou sob um RTOS, e também funcionar sobre uma pilha existente, como lwIP ou Zephyr.
A biblioteca atende microcontroladores das famílias STM32, NXP i.MX RT, MCX e RW612, além de ESP32, Raspberry Pi RP2040/RP2350, Renesas RA e componentes da TI, bem como Linux, macOS e Windows. Sua API orientada a eventos usa um único loop de gerenciamento de eventos, com uma função handler por conexão. Os protocolos integrados também incluem TCP/UDP sem criptografia, SNTP, DNS assíncrono e Modbus-TCP.
O projeto é distribuído sob licença dupla: GPLv2 ou uma licença comercial. O fornecedor oferece suporte pago e atualizações de segurança para usuários comerciais.
Recursos principais
- 01Pilha TCP/IP integrada com drivers para vários chips Ethernet e Wi-Fi de MCU
- 02TLS 1.3 integrado ou uso externo de mbedTLS e OpenSSL
- 03Suporte a servidor e cliente HTTP, WebSocket e MQTT
- 04Atualizações OTA de firmware para diversas plataformas STM32, RP2040/2350, ESP32 e NXP
- 05Código-fonte em C puro, compatível com ISO, e C++, sem dependências externas
Casos de uso
- Adicionar um painel web de configuração a um dispositivo baseado em microcontrolador
- Enviar telemetria de um dispositivo IoT para um broker MQTT
- Distribuir atualizações de firmware OTA para hardware embarcado
- Disponibilizar uma pequena API REST em uma placa com recursos limitados
Início rápido
- 1
Copie mongoose.c e mongoose.h para o seu projeto
- 2
Escreva um main.c que inclua mongoose.h e configure um loop de eventos
- 3
Compile o programa com o compilador C
cc main.c mongoose.c
Antes de usar
- O projeto é oferecido sob licença dupla, GPLv2 ou licença comercial; portanto, produtos de código fechado precisam de uma licença comercial paga.
- O suporte comercial e as correções de segurança antecipadas estão disponíveis apenas por meio de uma licença paga.
Em coleções
Tópicos
Perguntas frequentes
- O que é mongoose?
- Biblioteca de rede embarcada em C, distribuída em dois arquivos, com pilha TCP/IP, TLS 1.3, HTTP, WebSocket, MQTT e atualizações OTA de firmware para microcontroladores. Mongoose é uma biblioteca de rede para projetos embarcados em C/C++. Ela reúne uma pilha TCP/IP com drivers, TLS 1.3, HTTP, WebSocket, MQTT e atualizações OTA de firmware em dois arquivos-fonte, mongoose.c e mongoose.h, sem dependências externas. Pode rodar em bare metal ou sob um RTOS, e também funcionar sobre uma pilha existente, como lwIP ou Zephyr.
- mongoose é gratuito? Qual é a licença?
- mongoose é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- mongoose ainda é mantido?
- Manutenção ativa. O último commit de mongoose foi em 23 de out. de 2026.
- Para que posso usar mongoose?
- Adicionar um painel web de configuração a um dispositivo baseado em microcontrolador Enviar telemetria de um dispositivo IoT para um broker MQTT Distribuir atualizações de firmware OTA para hardware embarcado Disponibilizar uma pequena API REST em uma placa com recursos limitados
- Como instalar mongoose?
- Copie mongoose.c e mongoose.h para o seu projeto Escreva um main.c que inclua mongoose.h e configure um loop de eventos Compile o programa com o compilador C: cc main.c mongoose.c
- Onde consigo mongoose?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/cesanta/mongoose
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um compilador Go baseado em LLVM para microcontroladores, WebAssembly (WASM/WASI) e ferramentas de linha de comando.
Sistema baseado em configuração que transforma microcontroladores ESP32, ESP8266, BK72xx e RP2040 em dispositivos inteligentes controlados pelo Home Assistant e por outros sistemas de automação residencial.
Dispositivo baseado em ESP32-CAM que fotografa medidores analógicos de água, gás ou energia e usa IA no próprio dispositivo para converter as leituras em valores digitais.
Proxy HTTP interativo com suporte a TLS, que permite interceptar e inspecionar tráfego HTTP/1, HTTP/2 e WebSocket por interfaces de console, linha de comando e web.
Servidor backend em Python/Java/Vue para dispositivos de voz xiaozhi-esp32 com ESP32, compatível com MQTT+UDP, WebSocket, MCP, reconhecimento de voz e base de conhecimento.