finds.dev← search

// the find

SmingHub/Sming

★ 1,568 · C++ · LGPL-3.0 · updated Sep 2026

Sming - powerful open source framework simplifying the creation of embedded C++ applications.

Sming is an async C++ framework for embedded network devices, targeting ESP8266, ESP32, and RP2040/RP2350. It's for firmware developers who want Arduino-style ergonomics but with real non-blocking I/O, an HTTP/SMTP/OTA stack, and a proper HAL instead of the bare Arduino core.

Multi-architecture support is real, not a thin header shim — each Arch/ directory has its own driver, startup, and SDK integration code. It ships with working async HTTP client/server, SMTP client, and OTA updater out of the box, which saves real time versus stitching together Arduino libraries. There's a host emulator so you can develop and debug application logic without flashing hardware every cycle, plus gdbstub support for live on-device debugging. The project has been running CI (including per-arch build matrices and Coverity scanning) for years, which for embedded C++ is not a given.

The build system is still Makefile/component.mk-based with git submodules for vendored SDKs (esp-open-lwip, the ESP8266 SDK) — getting a clean checkout and toolchain set up is more work than `pio run`. Documentation is split across readthedocs (stable vs. latest) and a GitHub wiki, so it's easy to follow stale instructions. RP2040/RP2350 support reads as the newest addition and the README examples (WifiStation, GPIO2 blink) are still ESP8266-flavored, so parity across architectures is unclear without digging into the docs. No mention of a package manager or versioned library ecosystem beyond bundled samples, so pulling in third-party components means manual vendoring.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →