Skip to content

v3.0.0 — Ktor 3 + HTTP workers extracted

Latest

Choose a tag to compare

@vietnguyentuan2019 vietnguyentuan2019 released this 14 Jun 19:54
· 1 commit to main since this release
d80fa33

First major release: Ktor 3 support (#33) and a module split that removes Ktor from the core engine.

⚠️ Breaking changes

1. Requires Ktor 3 (for the HTTP workers)

Ktor 2.3.123.1.1. Ktor 2 and Ktor 3 share the same Maven coordinates and are binary-incompatible — an app classpath can hold only one. If you're still on Ktor 2, pin dev.brewkits:kmpworkmanager:2.5.1 until you migrate.

2. HTTP workers moved to a new artifact

The core kmpworkmanager no longer depends on Ktor at all. The six Ktor-based workers (HttpRequest, HttpSync, HttpDownload, HttpUpload, ParallelHttpDownload, ParallelHttpUpload) + HttpClientProvider now live in dev.brewkits:kmpworkmanager-http.

implementation("dev.brewkits:kmpworkmanager:3.0.0")        // core engine (no Ktor)
implementation("dev.brewkits:kmpworkmanager-http:3.0.0")   // optional — Ktor 3 HTTP workers

Register the HTTP workers via HttpWorkerRegistry (e.g. in a CompositeWorkerFactory). Worker class names and config are unchanged — persisted task IDs and JSON keep working.

Fixed

  • HTTP download EOF handling — Ktor 3 returns -1 at end-of-stream (Ktor 2 returned 0); download loops now break correctly.
  • iOS network reachability — real NWPathMonitor implementation, replacing the hardcoded placeholder (#40).
  • iOS test flakiness — fixed a queue-counter data race (#38) and a maintenance-job leak that crashed test runs (#43).

Upgrade guide

docs/MIGRATION_V3.0.0.md

Known issues

  • iOS FileCompressionWorker has no real ZIP codec yet (#39) — fail-fast by default, opt-in uncompressed fallback.
  • CI Android-instrumented emulator boot is flaky (#45); 2 pre-existing AlarmManager tests fail on device (#46). Neither affects the core/HTTP/iOS suites.

Full changelog: CHANGELOG.md