Welcome to Sming Framework
Let’s do smart things!!!
Sming is an asynchronous embedded C++ framework with superb performance and multiple network features. Sming is open source, modular and supports multiple architectures: ESP8266, ESP32, RP2040, and Host Emulation.
Summary
Superb performance and memory usage: Sming compiles to native firmware!
Fast and user-friendly C++ development
Integrated host emulator to assist with developing, testing and debugging libraries and applications on a PC. It even includes networking support! Try it out online here.
Built-in powerful wireless modules
Compatible with standard Libraries - use popular hardware in few lines of code
Integrated FlashString support for direct use of structured data stored in flash memory. Features
IMPORT_FSTR
macro for linking external binary files: no conversion to C arrays required!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), flexible scripted resource management and graphical layout editor.
Modular C++ Storage and Installable File System interfaces
New FWFS read-only high-performance 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 (GNU/Linux, Windows, MacOS) filing system via same API
Integrated streaming archival system to support backups or file system compaction operations
Modular Storage Management layer providing consistent access to off-device media such as SD Cards or USB mass storage for devices with USB support.
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.
Optional SSL support support for network clients and servers. Choose either axTLS or 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.