Tasmota is a monolithic firmware application for ESP8266/ESP32 microcontrollers that enables local control of IoT devices via MQTT, HTTP, Serial, or KNX protocols. It provides a web-based configuration interface, OTA update capabilities, automation features (timers/rules), and runtime extensibility through the Berry scripting language. The architecture integrates numerous hardware drivers, networking stacks, GUI components (LVGL), audio processing, and cryptographic implementations into a single firmware image built with PlatformIO. Key entry points include the web server for configuration, MQTT client for telemetry/control, serial command interface, OTA update mechanism, and hardware abstraction layer for peripherals. Data flows involve configuration persistence, sensor telemetry transmission, command reception for actuator control, and firmware update streams.
This repository is the `react-native-update` SDK (branded as Pushy for China and Cresc globally), a production-grade over-the-air (OTA) update library for React Native applications. It enables incremental patching of JavaScript bundles (including Hermes bytecode) and native resources across iOS, Android, and HarmonyOS platforms. The system comprises a JavaScript layer (React context, hooks, client classes) that orchestrates check, download, patch, and switch operations, and native modules on each platform that handle binary patching (via HDiffPatch/LZMA), secure zip extraction, resumable downloads, and a native cold-start check that can recover from crashes without JS involvement. The core patching and decision logic is implemented in C++ and shared across all platforms, enforced by golden-vector test suites. The SDK supports staged rollouts, telemetry, error reporting, crash rescue, and multiple update strategies (silent, alert, etc.). It is not a standalone application but a library integrated into React Native apps, with extensive CI/CD, unit tests, and e2e tests.
ElegantOTA is an Arduino library that provides a polished web-based portal for over-the-air (OTA) firmware and filesystem updates on wireless microcontrollers (ESP8266, ESP32, RP2040+WiFi, RP2350+WiFi). The library exposes a minimal C++ API (begin, loop, callbacks) and serves a gzipped HTML/CSS/JS portal at /update. It handles the entire OTA workflow: capacity check before upload, MD5 integrity verification, chunked writing, progress reporting, and automatic reboot. The code is well-structured with platform-specific abstractions via preprocessor macros, supporting both synchronous (WebServer) and asynchronous (ESPAsyncWebServer) modes. The repository includes comprehensive CI testing across multiple boards and toolchains (Arduino CLI, PlatformIO), a CLA assistant, and stale issue management. The library is actively maintained with recent bug fixes (MD5 verification, RP2040 space calculation) and a clear upgrade path to a commercial Pro version.