An asynchronous embedded C++ framework for ESP8266, ESP32, and Raspberry Pi Pico with powerful networking features.
Sming is an open-source, asynchronous C++ framework specifically designed for embedded systems development. It simplifies creating IoT applications by providing high-performance networking, modular architecture, and support for popular hardware like ESP8266 and ESP32. The framework solves the complexity of low-level embedded programming with a rich set of built-in features.
Embedded systems engineers and IoT developers working on ESP8266, ESP32, or Raspberry Pi Pico platforms who need robust networking and asynchronous capabilities in C++.
Developers choose Sming for its asynchronous architecture that enables efficient non-blocking operations, comprehensive networking stack out-of-the-box, and live debugging support—features that significantly accelerate embedded application development compared to traditional approaches.
Sming - powerful open source framework simplifying the creation of embedded C++ applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The asynchronous architecture enables handling multiple network and I/O tasks without blocking, improving responsiveness in embedded systems, as shown in the HTTP client and server examples.
Includes comprehensive networking features like HTTP, SMTP, WebSockets, and OTA updates out-of-the-box, reducing the need for external libraries for common IoT tasks.
Supports live debugging with GDB and Eclipse CDT, allowing developers to debug applications on hardware interactively, a rare feature in embedded frameworks demonstrated in the LiveDebug sample.
Compatible with popular Arduino libraries such as DHTesp, enabling easy interfacing with sensors without writing low-level drivers, as seen in the Humidity_DHT22 example.
Setting up requires installing architecture-specific toolchains and managing multiple documentation versions (stable vs. latest), which can be complex compared to plug-and-play alternatives like Arduino IDE.
Limited to C++ development, excluding developers who prefer higher-level languages like Python or JavaScript for embedded projects, which may offer faster prototyping.
Has a smaller community and fewer third-party libraries compared to mainstream frameworks like Arduino, which can slow down problem-solving and limit available resources.