Skip to content

async-esp-fs-webserver 3.0.0

Choose a tag to compare

@cotestatnt cotestatnt released this 17 Jan 10:37
· 27 commits to master since this release

This major release introduces significant architectural changes to improve flexibility and reduce dependencies.
The most notable change is the removal of ArduinoJson as a required dependency, which has been replaced with a lightweight, custom JSON handling implementation based on cJSON.

Custom JSON Handler Implementation:

  • Introduced a new lightweight AsyncFSWebServer::Json class that wraps the cJSON library
  • Provides a simplified API for JSON serialization and deserialization without external heavy libraries
  • Reduced memory footprint and improved performance on resource-constrained ESP devices
  • Users no longer need to include #include <ArduinoJson.h> in their sketches

Class Organization & Restructuring

  • Reorganized core library classes for better maintainability and logical separation of concerns
  • Improved namespace organization within AsyncFSWebServer namespace
  • Enhanced code modularity to support cleaner integrations

API Updates

  • JSON operations now use the new AsyncFSWebServer::Json class instead of ArduinoJson's JsonDocument, JsonArray, and JsonObject types
  • Internal JSON handling methods have been updated throughout the library
  • WebSocket and API response generation now utilize the custom JSON implementation

Migration Guide for Users

  • Update imports to remove #include <ArduinoJson.h> from existing code

Examples have been updated to demonstrate the new API.

Benefits:
✅ Reduced library dependencies and firmware size
✅ Faster compilation times
✅ Better compatibility with lean/minimal builds
✅ Improved ESP8266/ESP32 memory efficiency
✅ Simplified JSON handling for common use cases

Compatibility Notes:
⚠️ This is a breaking change - Projects using v2.0.4 might require code updates to migrate to v3.0.0.
The old ArduinoJson API is no longer supported internally, though users can still include ArduinoJson separately if needed for their own sketches.

Full Changelog: 2.0.4...3.0.0