-
-
Notifications
You must be signed in to change notification settings - Fork 64
Update with upstream #50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…e 3.1.1 which now has Middleware support
Fix typo in example
Introduce -D ASYNCWEBSERVER_USE_CHUNK_INFLIGHT=0|1 to be able to enabled/disable inflight in chunk response
bblanchon/ArduinoJson @ 7.4.2
Fix compile on libretiny due to round macro conflict
- Now obey the spec - Uses a static parse method - Support move semantic
Fixed Header parsing
Arduino Core 3.2.1
ESP32Async/AsyncTCP @ 3.4.5
* ETag and caching for serving pre‐compressed files This PR introduces ETag handling and caching improvements for serving pre‐compressed .gz files, enabling conditional GET responses to optimize bandwidth and server resource usage. Adds ETag header generation based on the CRC32 checksum from the gzip trailer. Implements conditional 304 responses in the send() method when the client's ETag matches the server's. Enhances both asynchronous file response handling and web server request processing for .gz files. * Add files via upload * ci(pre-commit): Apply automatic fixes * Make _getEtag a private method Make private: static void _getEtag(uint8_t trailer[4], char *serverETag) --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
* set default value for '_onDisconnectfn' * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
* Support for pre-compressed and ETag in download When downloading file request: 1. **Gzipped file serving**: - Automatically detects and serves pre-compressed `.gz` files when uncompressed originals are missing - Properly sets `Content-Encoding: gzip` headers - Implements `If-None-Match` header comparison for 304 (Not Modified) responses (RFC 7232) - Implements `ETag` header using CRC-32 from gzip trailer (bytes 4-7 from end) - Optimize for speed Changes affect: void AsyncWebServerRequest::send(FS &fs, const String &path, const char *contentType, bool download, AwsTemplateProcessor callback) AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(FS &fs, const String &path, const char *contentType, bool download, AwsTemplateProcessor callback) AsyncFileResponse::AsyncFileResponse(FS &fs, const String &path, const char *contentType, bool download, AwsTemplateProcessor callback) : AsyncAbstractResponse(callback) * ci(pre-commit): Apply automatic fixes * Update src/AsyncWebServerRequest.cpp Co-authored-by: Copilot <[email protected]> * Add files via upload --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Copilot <[email protected]>
Optimize _setContentTypeFromPath method with a more efficient version (_setContentTypeFromPath_v3) that uses C-string comparison (strcmp) instead of String::endsWith. This change improves performance and reduces memory usage, Common web extensions are checked first to speed up typical lookups. Version 1 (original): 16.9789 μs per call Version 2 (strcmp): 6.7527 μs per call
…pe-detection Optimize content type detection using C-strings
Merged latest changes from ESP32Async/ESPAsyncWebServer while preserving ESPHome-specific metadata in library.json and README.md
ESPHome is no longer using forked versions of AsyncTCP and ESPAsyncTCP, so update to use the official ESP32Async versions.
why not directly make use of https://github.com/ESP32Async/ESPAsyncWebServer ? That would be less confusing for users and would be easier for them to point to new versions or dev branches |
We switched from this fork to going directly with released version of https://github.com/ESP32Async/ESPAsyncWebServer just recently in ESPHome. We are only considering to switch back to the fork because we need the libretiny fix for the ESPHome release coming in ~48 hours so we don't ship with esphome/issues#7230 broken. Than the plan is to switch back to the released version of https://github.com/ESP32Async/ESPAsyncWebServer in the future when the libretiny fix is generally available in a release and let the fork go dormant again. |
Ok if you had told me I would have issued a release immediately. I will do it now. |
v3.7.10 released, publish will be done in a few minutes for pio registry and esp-idf registry |
Many thanks mathieucarbou 🙇 |
Update from upstream. This is a merge from https://github.com/ESP32Async/ESPAsyncWebServer latest with preserving the ESPHome fork message in README.md and library.json changes
Tested on Arduino and bk7200