Release 2.0.7 - 2024-11-10
- Accept responses with just a status code #263 (commit #1 commit #2)
- Fixed compressed file content-type assignment #251 (commit) (thanks Lukas Kremla!)
- Better documentation for start_server#252 (commit)
- Fix URLs in documentation #253 (commit) (thanks Stanislav Garanzha!)
Release 2.0.6 - 2024-06-18
- Add event ID to the SSE implementation #213 (commit) (thanks Hamsanger!)
- Configurable session cookie options #242 (commit)
- Improved cookie support in the test client (commit)
- Cookie path support in session extension and test client (commit)
- Refactor
Session
class to make it more reusable (commit) - Use
@functools.wraps
on decorated functions (commit) - Removed outdated import from documentation #216 (commit) (thanks Carlo Colombo!)
- Add roadmap details to readme (commit)
Release 2.0.5 - 2024-03-09
Release 2.0.4 - 2024-02-20
- Do not use regexes for parsing simple URLs #207 (commit #1 commit #2)
- Added documentation on using alternative uTemplate loaders (commit)
- Added CircuitPython builds (commit)
Release 2.0.3 - 2024-01-07
- Add a limit to WebSocket message size #193 (commit)
- Pass keyword arguments to thread executor in the correct way #195 (commit)
- Update uasyncio library used in tests to include new TLS support (commit)
- Documentation improvements (commit)
Release 2.0.2 - 2023-12-28
- Support binary data in the SSE extension (commit)
- Upgrade micropython tests to use v1.22 + initial CircuitPython testing work (commit)
- Improvements to migration guide (commit)
- Remove spurious async in documentation example #187 (commit) (thanks Tak Tran!)
Release 2.0.1 - 2023-12-23
- Addressed some inadvertent mistakes in the template extensions (commit)
Release 2.0.0 - 2023-12-22
- Major redesign #186 (commit)
- Code reorganization as a
microdot
package - Asyncio is now the core implementation
- New support for Server-Sent Events (SSE)
- Several extensions redesigned
- Support for "partitioned" cookies
- Cross-compiling and freezing guidance
- A Migration Guide to help transition to version 2 from older releases
- Code reorganization as a
Release 1.3.4 - 2023-11-08
- Handle change in
wait_closed()
behavior in Python 3.12 #177 (commit) - Added missing request argument in some documentation examples #163 (commit)
- Fix minor documentation typos #161 (commit) (thanks Andy Piper!)
Release 1.3.3 - 2023-07-16
- Handle query string arguments without value #149 (commit)
- Support empty responses with ASGI adapter (commit)
- Added CORS extension to Python package (commit)
- Document access to WSGI and ASGI attributes #153 (commit)
- Upgrade micropython tests to use v1.20 (commit)
Release 1.3.2 - 2023-06-13
- In ASGI, return headers as strings and not binary #144 (commit)
- Incorrect import in
static_async.py
example (commit)
Release 1.3.1 - 2023-05-21
- Support negative numbers for int path components #137 (commit)
- Use a more conservative default for socket timeout #130 (commit)
- More robust check for socket timeout error code #106 (commit)
- WebSocket error when handling PING packet #129 (commit)
- Explicitly set UTF-8 encoding for HTML files in examples #132 (commit)
Release 1.3.0 - 2023-04-08
- Cross-Origin Resource Sharing (CORS) extension #45 (commit)
- Respond to
HEAD
andOPTIONS
requests (commit) - Tolerate slightly invalid formats in query strings #126 (commit)
- Support compressed files in
send_file()
#93 (commit) - Add
max_age
argument tosend_file()
(commit) - Add
update()
method toNoCaseDict
class (commit) - Set exit code to 1 for failed MicroPython test runs (commit)
Release 1.2.4 - 2023-03-03
- One more attempt to correct build issues (commit)
Release 1.2.3 - 2023-03-03
- Corrected a problem with previous build.
Release 1.2.2 - 2023-03-03
- Add a socket read timeout to abort incomplete requests #99 (commit)
- More robust timeout handling #106 (commit)
- Add @after_error_handler decorator #97 (commit)
- Return headers as lowercase byte sequences as required by ASGI (commit)
- Async example of static file serving (commit)
- Fixing broken links to examples in documentation #101 (commit) (thanks Eric Welch!)
- Add scrollbar to documentation's left sidebar (commit)
- Documentation typo #90 (commit) (thanks William Wheeler!)
- Add CPU timing to benchmark (commit)
- Upgrade uasyncio release used in tests (commit)
- Update unittest library for MicroPython (commit)
- New build of micropython for unit tests (commit)
- Remove 3.6, add 3.11 to builds (commit)
Release 1.2.1 - 2022-12-06
- Error handling invokes parent exceptions #74 (commit) (thanks Diego Pomares!)
- Addressed error when deleting a user session in async app #86 (commit)
- Add asyncio file upload example (commit)
- New Jinja and uTemplate examples with Bootstrap (commit)
- Fix typos in documentation #77 (commit) (thanks Diego Pomares!)
- Add missing exception argument to error handler example in documentation #73 (commit) (thanks Diego Pomares!)
Release 1.2.0 - 2022-09-25
- Use a case insensitive dict for headers (commit #1 commit #2)
- urlencode() helper function (commit #1 commit #2)
- Added
request.url
attribute with the complete URL of the request (commit) - Do not log HTTPException occurrences (commit)
- Cache user session for performance (commit)
- File upload example (commit)
- Minor documentation styling fixes (commit)
Release 1.1.1 - 2022-09-18
Release 1.1.0 - 2022-09-17
- Websocket support #55 (commit)
- SSL/TLS support (commit #1 commit #2)
- Add
abort()
function (commit) - Charset handling in Content-Type headers #60 (commit)
- Recover from errors writing the response (commit)
- Reorganized examples into subdirectories (commit)
- Update tests to use MicroPython 1.19 (commit)
- Update MicroPython libraries used by tests (commit)
- Fix links to hello and gpio examples in documentation #53 (commit) (thanks Sterling G. Baird!)
Release 1.0.0 - 2022-08-07
- User sessions with signed JWTs (commit)
- Mount sub-applications (commit)
- Request-specific
after_request
handlers (commit) - Render templates with uTemplate (commit)
- Render templates with Jinja (commit)
- Test client (commit)
- Async test client (commit)
- Example that serves static files from a directory (commit)
- Allow routes to only return a body and headers (commit)
- Improved handling of 400 and 405 errors (commit)
- Support responses with more than one cookie in WSGI and ASGI extensions (commit)
- Cookie expiration can also be given as a string (commit)
- Accept POST request with empty body (commit)
- Add missing asgi module to package (commit)
- Memory usage comparison and benchmark (commit)
- Do not use
_thread
for multithreading (commit) - Getting Started documentation chapter (commit)
- Concurrency section added to the documentation (commit)
- Documentation for all official extensions (commit)
- Remove legacy
microdot-asyncio
package files (commit) - Added MicroPython libraries required by user sessions (commit)
- Reorganized vendored MicroPython libraries (commit)
Release 0.9.0 - 2022-06-04
- Streaming responses #44 (commit)
- Return 204 when view function returns None (commit)
- ASGI support (CPython only) (commit)
- WSGI support (CPython only) (commit)
- Documentation updates (commit)
- Add Python 3.10 to build (commit)
- Run linter on examples (commit)
Release 0.8.2 - 2022-04-20
Release 0.8.1 - 2022-03-18
- Optimizations for request streams and bodies (commit)
Release 0.8.0 - 2022-02-18
- Support streamed request payloads #26 (commit)
- Use case insensitive comparisons for HTTP headers #33 (commit) (thanks Steve Li!)
- More robust logic to read request body #31 (commit)
- Simplified
hello_async.py
example (commit)
Release 0.7.2 - 2021-09-28
- Document a security risk in the send_file function (commit) (thanks Ky Tran!)
- Validate redirect URLs (commit) (thanks Ky Tran!)
- Return a 400 error when request object could not be created (commit)
Release 0.7.1 - 2021-09-27
- Breaking change: Limit the size of each request line to 2KB. A different maximum can be set in
Request.max_readline
. (commit) (thanks Ky Tran!)
Release 0.7.0 - 2021-09-27
- Breaking change: Limit the size of the request body to 16KB. A different maximum can be set in
Request.max_content_length
. (commit) - Add documentation for
request.client_addr
#27 (commit) (thanks Mark Blakeney!) - Added documentation for reason argument in the Response object (commit)
Release 0.6.0 - 2021-08-11
- Better handling of content types in form and json methods #24 (commit)
- Accept a custom reason phrase for the HTTP response #25 (commit)
- Make mime type check for form submissions more robust (commit)
- Copy client headers to avoid write back #23 (commit) (thanks Mark Blakeney!)
- Work around a bug in uasyncio's create_server() function (commit)
- More unit tests (commit)
- Installation instructions (commit)
- Run tests with pytest (commit)
- Deprecated the microdot-asyncio package (commit)
Release 0.5.0 - 2021-06-06
- Documentation site (commit)
- Support duplicate arguments in query string and form submissions #21 (commit)
- Merge
microdot-asyncio
package withmicrodot
(commit) - Added a change log (commit)
- Improve project structure (commit)
Release v0.4.0 - 2021-06-04
- Add HTTP method-specific route decorators (commit)
- Server shutdown #19 (commit)
- Update microypthon binary for tests to 1.15 (commit)
Release v0.3.1 - 2021-02-06
- Support large downloads in send_file #3 (commit)
- Move socket import and add simple hello example #12 (commit) (thanks Damien George!)
- Update python versions to build (commit)
- Handle Chrome preconnect #8 (commit) (thanks Ricardo Mendonça Ferreira!)
- Readme update (commit)
- Switch to GitHub actions for builds (commit)
Release v0.3.0 - 2019-05-05
- g, before_request and after_request (commit)
- Threaded mode (commit)
- Optional asyncio support (commit)
- Debug mode (commit)
- Print exceptions (commit)
- Flake8 (commit)
- Unit testing framework (commit)
- More robust header checking in tests (commit)
- Response unit tests (commit)
- Request unit tests (commit)
- More unit tests (commit)
- Async request and response unit tests (commit)
- More asyncio unit tests (commit)
- Improve code structure (commit)
- URL pattern matching unit tests (commit)
- Rename microdot_async to microdot_asyncio (commit)
Release 0.2.0 - 2019-04-19
- Error handlers (commit)
- Fleshed out example GPIO application (commit)
- More robust parsing of cookie header (commit)
Release 0.1.1 - 2019-04-17