Releases
v2.3.0
Compare
Sorry, something went wrong.
No results found
Features
Streaming event mode — HttpClient(event_mode=True) makes wait()/process_events() return EVENT_* constants, mirroring uhttp-server's HttpConnection. After EVENT_HEADERS choose body delivery: accept_body(), accept_body_streaming(), accept_body_to_file(), accept_ndjson(); read via read_buffer() / read_record() / response.
Chunked transfer encoding — response decoding (works in classic blocking mode too).
Read-until-close streaming — request(stream=True) for responses without Content-Length/chunked (MJPEG, SSE).
NDJSON streaming — accept_ndjson() + read_record(), sharing the JSON decode/error path with HttpResponse.json().
Expect: 100-continue — request(expect_continue=True) waits for server confirmation before sending the body.
Fully non-blocking — TCP connect, SSL handshake and HTTP I/O all via select() (for slow links: 4G modems, ESP32 PPP).
Fixes
Windows : non-blocking would-block handling (EWOULDBLOCK differs from EAGAIN), BlockingIOError, non-blocking connect via the select except-set.
MicroPython : EWOULDBLOCK/EINPROGRESS/ENOENT handling, recv() returning None on SSL would-block, missing socket.getsockopt.
SSL + select() edge cases.
Internal
Version derived from git tag (setuptools-scm).
Pluggable _BodyReader framing strategy (Length / Chunked / EOF).
CI integration tests against a local HTTP server and ESP32 MicroPython hardware.
You can’t perform that action at this time.