Repository navigation
0.1.0 — Reliable Docker streams and interactive terminals
This release improves the client for building a management panel for a single Docker host: immediate terminal output, predictable stream lifetimes, and correct decoding of large Docker counters.
Highlights
- Interactive terminals:
ExecSession.incomingChunksdelivers raw output immediately, including prompts without a newline and ANSI sequences. Sessions own their connections and close on completion, cancellation, or consumer failure. Duplex I/O and shutdown handling were improved on JVM, Node.js, and Linux. - Reliable logs, stats, and events: bounded records, backpressure, HTTP error validation, truncated-body detection, and explicit cancellation handling. Recollecting a stream opens a fresh request.
- Correct Docker counters: OpenAPI
uint64anduint32fields now map toULongandUInt, fixing overflow when decoding CPU, memory, and network statistics. - Dashboard terminals: automatic fitting with Docker TTY resize, fullscreen with a viewport fallback, Escape to exit, and cleanup on navigation. Attaching to an already-running container no longer fails on HTTP 304.
- Build maintenance: removed deprecated stream APIs and remaining build warnings; CI JavaScript actions use Node.js 24 and build/test/docs checks reject Gradle deprecations.
Upgrade from 0.0.10
- Generated unsigned counters now have unsigned Kotlin types; update consuming code where necessary.
- Collect terminal output once.
incoming.first()/take()closes the session; use a single long-lived collector for an interactive terminal. Binary chunks may split UTF-8 characters, so use a streaming decoder when converting them to text. - The unscoped
prependLeftoverhelper was removed. Read through the session output API instead. - Stream recovery is application-controlled: handle both exceptions and normal EOF. There are no automatic retries. CIO can report a disconnect between complete HTTP chunks as normal EOF.
Installation
Available on Maven Central for Kotlin Multiplatform, JVM, JavaScript, and Linux x64:
implementation("dev.limebeck.libs:docker-client:0.1.0")Validation and scope
195 library tests passed across JVM, Node.js, and Linux. Debug/release samples and Dokka built successfully. Dashboard resizing was checked against real Docker TTYs and in the browser. The client targets Docker API 1.51; API version negotiation is not included.
Release CI · README and migration guidance · Maven Central artifacts
Full changelog: v0.0.10...v0.1.0