github open-toast/protokt 1.0.0-beta.12
v1.0.0-beta.12

5 hours ago

protokt 1.0.0-beta.12

Kotlin/Native support

  • Register Kotlin/Native targets: protokt can now be used from iOS, macOS, Linux, Windows, watchOS, and tvOS applications. (#508)
  • Full conformance test suite runs against a native driver on macOS and Linux, supporting both standard and streaming serialization modes.
  • CI restructured: macOS is the primary build host, cross-compiling all native binaries. Satellite jobs on Linux x64, Linux arm64, and Windows x64 execute the cross-compiled test binaries.

Extension API and self-hosted codegen

  • Proto2 extension API: type-safe message[ext] access via Extension<E, T>, RepeatedExtension<E, T>, and ExtensionCodec with all wire type codecs. (#520)
  • Generated extension declarations: extend blocks now produce typed Kotlin extension properties (val Extendee.name: T?) backed by the new extension API.
  • Self-hosted codegen: the entire code generation pipeline now uses protokt's own descriptor types (protokt.v1.google.protobuf.*) instead of protobuf-java's DescriptorProtos, with a new protokt-bootstrap module containing checked-in generated code.
  • unknownFields promoted to the Message interface; UnknownFieldSet internals privatized behind operator get, operator contains, forEach.
  • regenerateBootstrap and verifyBootstrap Gradle tasks ensure checked-in bootstrap code doesn't drift; wired into CI.

Benchmarks

  • Migrate from JMH to kotlinx-benchmark, which delegates to JMH on JVM and uses its own runtime on Kotlin/Native. macosArm64 native benchmark target added alongside JVM. (#512)

Housekeeping

  • Put v1 into runtime property names (protokt.v1.codec, protokt.v1.collection.factory). (#498)
  • Clean up readme and annotate generated internal methods with annotations discouraging direct use. (#497)

Dependency updates

Libraries:

  • Wire 6.0.0 -> 6.2.0
  • grpc-java 1.79.0 -> 1.81.0
  • kotlinx-serialization-json 1.10.0 -> 1.11.0
  • protovalidate 1.1.1 -> 1.2.2
  • proto-google-common-protos 2.66.0 -> 2.70.0
  • jackson-module-kotlin 2.21.1 -> 2.21.3
  • kotlin-logging 8.0.01 -> 8.0.02
  • okio-fakefilesystem 3.12.0 -> 3.17.0
  • kotlinpoet 2.2.0 -> 2.3.0
  • Kotlin 2.3.20 -> 2.3.21

Build tools:

  • Gradle 9.4.1 -> 9.5.0
  • gradle-plugin-publish 2.0.0 -> 2.1.1
  • protobuf-gradle-plugin 0.9.6 -> 0.10.0
  • actions/setup-go 5 -> 6

Full Changelog: 1.0.0-beta.11...1.0.0-beta.12

Don't miss a new protokt release

NewReleases is sending notifications on new releases.