/
Karbone is a Kotlin SDK for the Carbone.io document generation API.
It is meant as a modern, idiomatic and complete replacement for the official carbone-sdk-java, which has been left incomplete and dated: no coroutine support, no typed render options, string-typed errors, and only partial coverage of the API.
Karbone is in early development. The API is not stable yet.
RenderOptions, OutputFormat and its PdfOptions / ImageOptions / CsvOptions, UploadOptions, TemplatePatch… all the fields Carbone accepts are Kotlin types with builders, not raw JSON maps.context(_: Raise<KarboneError>) suspend fun ..., built on Arrow’s Raise. No exceptions to catch, no silent nulls; KarboneError is a sealed hierarchy you can exhaustively when on. A synchronous, exception-throwing facade is available for Java and other non-coroutine callers. See Errors.suspend fun; pagination is exposed as a Flow.carbone-ee are both first-class targets, with the differences (API versioning header, authentication, template management) handled explicitly rather than assumed away. See On-premise.java.net.http.HttpClient, kotlinx.serialization for JSON, and arrow-core for errors — no OkHttp, Retrofit or Ktor client pulled into your dependency graph.KarboneConfig, timeouts, retries, logging.KarboneError hierarchy and how to handle it.carbone-ee.FakeKarbone.