Skip to content

v0.1.2

Choose a tag to compare

@jelmer jelmer released this 28 Apr 09:12
· 56 commits to main since this release

Highlights

  • Pure-Rust HTTP transport backed by reqwest (replaces ureq) with full WebDAV support (webdav Cargo feature), Negotiate/Kerberos auth, streaming response bodies, lazy readv, proxy auth (407 challenges), URL-embedded credentials, and incremental download activity reporting.
  • Pure-Rust SFTP transport behind a new sftp Cargo feature, including streaming get() and SFTP handshake error classification.
  • URL-to-Transport registry with decorator prefixes registered as first-class entries.
  • Cross-platform CI: wheels and tests now run on Linux, macOS, and Windows. Numerous Windows path/UNC fixes (_win32_normpath, abspath/relpath, separator handling) and a macOS SOCK_CLOEXEC build fix.
  • Dependency bumps: reqwest 0.12 → 0.13, rand 0.8 → 0.10, md-5 and sha1 0.10 → 0.11, quick-xml 0.37 → 0.39, ruff 0.15.12.

Bug fixes

  • readv: eager errors surface at the call site; falls back to full-file when the server rejects Range; coalescing tunables are now instance-settable; honours _get_max_size; rejects zero-length ranges.
  • HTTP: classifies parse failures separately from connection failures; treats truncated bodies as InvalidHttpResponse (retryable); synthesises empty 200 for bodied requests on incomplete response; canonicalises abspath output.
  • Proxy: strips userinfo before handing to reqwest; rejects scheme-less proxy URLs; honours credentials embedded in proxy URL; prompt labels distinguish proxy vs origin auth.
  • WebDAV: open_write_stream, tree delete, and mode pass-through.
  • Connection caching keyed on origin (scheme/host/port) rather than full base URL.