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 viaExtension<E, T>,RepeatedExtension<E, T>, andExtensionCodecwith all wire type codecs. (#520) - Generated extension declarations:
extendblocks 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'sDescriptorProtos, with a newprotokt-bootstrapmodule containing checked-in generated code. unknownFieldspromoted to theMessageinterface;UnknownFieldSetinternals privatized behindoperator get,operator contains,forEach.regenerateBootstrapandverifyBootstrapGradle 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
v1into 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