Skip to content

Releases: cortexm/uhttp-client

v2.3.0

Choose a tag to compare

@pavelrevak pavelrevak released this 18 Jun 04:44

Features

  • Streaming event modeHttpClient(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 streamingrequest(stream=True) for responses without Content-Length/chunked (MJPEG, SSE).
  • NDJSON streamingaccept_ndjson() + read_record(), sharing the JSON decode/error path with HttpResponse.json().
  • Expect: 100-continuerequest(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.

v2.2.1 - CLI tool

Choose a tag to compare

@pavelrevak pavelrevak released this 02 Mar 07:47

added cli-tool uhttp:

  • it is similar to curl but simpler, uses uhttp.client module

bugfixes:

  • correct processing _ssl.SSLWantReadError and _ssl.SSLWantWriteError

v2.2.0

Choose a tag to compare

@pavelrevak pavelrevak released this 01 Mar 20:49

first release after separating https://github.com/pavelrevak/uhttp

  • fixed tests