Welcome to Sming Framework
Let’s do smart things!!!
Sming is an asynchronous embedded C/C++ framework with superb performance and multiple network features. Sming is open source, modular and supports multiple architectures including ESP8266 and ESP32.
Summary
Superb performance and memory usage (Sming compiles to native firmware!)
Fast and user friendly development
Integrated host emulator to assist with developing, testing and debugging libraries and applications on a PC before uploading them to an actual microcontroller. Try it out online here.
Built-in powerful wireless modules
Compatible with standard Libraries - use popular hardware in few lines of code
Simple yet powerful hardware API wrappers
Standard Arduino-style wrappers for simplicity and flexibility
HardwareSPI library provides advanced asynchronous SPI device master capability including use of ESP8266 ‘overlapped’ mode for reduced pin usage and dual/quad I/O support.
Sming Graphics Library implements asynchronous display control model with low memory usage, transparency (alpha-blending) and flexible scripted resource management.
Modular C++ installable file system interface
New FWFS read-only filesystem can be used as base file system, with read/write filesystems mounted in sub-directories
Integrated metadata support (file times, security descriptors, user metadata)
Access to Host (linux / Windows / MacOS) filing system via same API
Integrated streaming archival system to support backups or file system compaction operations
Powerful asynchronous (async) network stack including:
Async TCP and UDP stack based on LWIP.
With clients supporting: HTTP, MQTT, WebSockets and SMTP.
And servers for: DNS, FTP, HTTP(+ WebSockets), Telnet.
With SSL support for all network clients and servers. Based on axTLS and BearSSL.
Over-The-Air (OTA) firmware upgrades via HTTP(S) and MQTT(S).
Universal Plug and Play (UPnP) framework supports both standard and custom devices with full ControlPoint support.
Generates C++ code from standard UPnP XML schema.
Companion SSDP library independently supports discovery on local network.
GoogleCast library allows control of ChromeCast devices or smart TVs supporting the GoogleCast protocol.
Hue Emulator provides simple way to implement devices compatible with Amazon Alexa.
ESP8266 features
Integrated boot loader rBoot with support for 1MB ROMs, OTA firmware updating and ROM switching.
Crash handlers for analyzing/handling system restarts due to fatal errors or WDT resets.
PWM support based on Stefan Bruens PWM.
Optional custom heap allocation based on Umm Malloc.
Based on Espressif NONOS SDK Version 3.
ESP32 features
Based on ESP IDF SDK