Mongoose networking library / Dublin, since 2004
Your product on the network, in two files.
Copy mongoose.c and mongoose.h into your source tree. Your device answers HTTP, speaks WebSocket and MQTT, holds a TLS 1.3 connection, updates its own firmware and serves a dashboard your customers open in a browser. There is nothing else to install and nothing else to link.
- Since 2004Our story starts in 2004, when Mongoose development began.
- Hundreds of millions of devicesDeployed worldwide in production.
- Aboard the ISSUsed by NASA on the International Space Station.
- Bosch, Samsung, Google, IntelAmong the companies we have licensed to.

The integration
Two files, and your firmware is on the network.
Most networking stacks arrive as a dependency tree, a build system and an account to create. Ours arrives as mongoose.h and mongoose.c. Add them below and watch what happens to the board on the right.
/* main.c */ #include "mongoose.h" static void ev_handler(struct mg_connection *c, int ev, void *ev_data) { if (ev == MG_EV_HTTP_MSG) { struct mg_http_serve_opts opts = {.root_dir = "."}; mg_http_serve_dir(c, ev_data, &opts); } } int main(void) { board_init(); /* your product, offline */ for (;;) {} struct mg_mgr mgr; mg_mgr_init(&mgr); mg_http_listen(&mgr, "http://0.0.0.0:80", ev_handler, NULL); for (;;) mg_mgr_poll(&mgr, 1000); return 0; }
mongoose / add to project
Use the arrow keys if you prefer. The code beside it is the HTTP server example from our own documentation, unedited.
Our own TCP/IP stack
Enable it and you need no external stack at all. If you already run BSD sockets, lwIP or FreeRTOS-Plus-TCP, we sit on top of that instead.
Our own TLS 1.3 stack
Written by us and shipped in the same two files. OpenSSL and mbedTLS are supported if you would rather use them.
Nothing to package
No package manager, no submodule, no generated build tree. Two files in your repository, under your review, in your existing build.
Captured from the dashboard running right now at mongoose.ws/device-dashboard
What arrives with them
The whole networking layer, in your build.
01
HTTP, WebSocket and MQTT
An embedded HTTP, WebSocket and MQTT library for C and C++, which is what most of the hundreds of millions of devices in the field are using us for.
02
TLS 1.3, ours or yours
We implement a built-in TLS 1.3 stack. If your certification path already depends on OpenSSL or mbedTLS, use those instead and keep the same API.
03
Firmware over the air
Upload a .bin from the dashboard, or point the device at a URL and let it check on an interval you set. A hung update is re-pushed rather than returned.
04
A dashboard, not a demo
Login and access levels, live status, real-time graphs, settings, file upload and device logs, bound to your C code through a simple dashboard API.
On whatever they open it with
The same dashboard, on a phone.
Your installer is standing at a cabinet with a handset, not a laptop. The dashboard your board serves reflows to the screen in front of them, with the same controls and the same live values.
- One UI to build and one to maintain
- Served from the device, so it works on a closed network
- No app to publish, review or update

Mongoose Wizard
Draw the dashboard. Take the C.
Wizard is our no-code visual tool for adding networking to embedded devices. Lay out the pages, the UI elements and the REST endpoints, pick your target architecture, then generate the C and C++ and keep it. The output is source you own, in the same two-file library, not a runtime you rent.
Who ships it
We have sold to hundreds of companies, from small enterprises to Fortune 500 giants.
“We have thousands of devices connected to mDash. It is a very reliable system that allows us to troubleshoot, monitor and update our users’ devices whenever we need.”Jim Rhodes, Founder and Director, Those Ltd, UK
“Its features, such as OTA and shadow, saved us a lot of custom development and shortened product time to market.”Thijs Olthof, Founder, Innovation in Motion B.V, Netherlands
Licensing
Two ways to use it, and no surprise in either.
GPLV2
Open source
Evaluate it, prototype with it and learn it under GPLv2. The full library, the dashboard and the examples, with no gate in front of them.
Read the sourceCOMMERCIAL
Proprietary firmware, at scale
Ship closed firmware and keep your source your own, with developer support from the people who wrote the library. Tell us the product and the volume and we will price it.
Request a quoteTalk to us
Tell us what you are building.
Questions about the library, licensing, support or the dashboard go straight to the engineers who maintain it. We are in Dublin and we answer in English.
- Office13 Edward Place, Bloomfield Ave, Dublin 4, Ireland
- Phone+353 1 592 5476
- Emailsupport@cesanta.com
- Documentationmongoose.ws/documentation