All Versions
Latest Version
Avg Release Cycle
76 days
Latest Release

Changelog History
Page 2

  • v4.0.0-alpha.8 Changes


    ๐Ÿš€ This release drops the -multiplatform suffix on Kotlin Multiplatform artifacts. All artifacts now share the same name (like com.squareup.wire:wire-runtime:4.0.0-alpha.8) for both Kotlin/JVM and Kotlin Multiplatform.

    • New: Programmatic API to prune schemas. See Pruner in wire-schema.
    • New: Expose the source .proto file at ProtoAdaper.sourceFile. This is null for built-in types and types generated prior to this release.
    • Fix: Retain field order when emitting a schema as .proto files.
    • Fix: Support Kotlin-generated annotations on Java fields.
    • Fix: Locate files in the root package when importing.
  • v4.0.0-alpha.7 Changes


    • Fix: Use correct type when referencing a custom adapter in Kotlin generated code.
    • Fix: Handle writing/reading exceptions for duplex calls in Wire gRPC.
  • v4.0.0-alpha.6 Changes


    • Fix: Explicitly defined Wire gRPC server generation as experimental: the feature isn't complete.
    • Fix: Suppress deprecation warnings on generated enum's fromValue method in Kotlin.
    • Fix: Use relative path sensitivity and file collection.
  • v4.0.0-alpha.5 Changes


    Kotlin + Java

    • New: Generate Kotlin code whose members match the declaration order of the corresponding .proto files. In previous releases, generated members were sorted by kind (fields, oneofs), then by declaration order. With this update only declaration order is used. Note that this will change the encoded-bytes of these messages. This change is both forwards and backwards-compatible. Identical encoding of equal messages across Wire releases is typical but not guaranteed, and this is a rare release that changes that encoding. If you do cryptographic hashes on encoded proto messages, you will notice that the hashes are different in this release.
    • Fix: Redact boxed OneOf fields.
    • Fix: Don't crash encoding schemas when an option contains a repeated field, an enum, or a double.
    • Fix: Be more aggressive about loading transitive files with SchemaLoader.loadExhaustively.
    • Fix: Don't break task caching by using absolute paths in the Gradle plugin. Wire now uses project-relative paths in any attribute that is used as a cache key.
  • v4.0.0-alpha.4 Changes


    Kotlin + Java

    • New: Define oneofName in @WireField.
    • New: Option in SchemaLoader to exhaustively load imported files. By default we only load what's immediately necessary to generate code; this new option loads everything reachable into the schema.
  • v4.0.0-alpha.3 Changes


    Kotlin + Java

    • New: Support for special float literals.
    • New: Support for Android variants.
    • New: Add 'nameSuffix' parameter for configuring generated service-class names in Kotlin.
    • New: Support for glob syntax in srcJar includes.
    • Fix: Redacted Kotlin scalars now respect nullability.
    • Update: Update KotlinPoet to 1.8.0.
    • Bye: Drop support for emitKotlinxSerialization.
  • v4.0.0-alpha.2 Changes


    Kotlin + Java

    • New: @WireRpc has a new sourceFile attribute.
    • New: wire-reflector bundles gRPC's reflection.proto which it is built upon.
  • v4.0.0-alpha.13 Changes


    • Fix: Memory fixes found with Address Sanitizer in Swift.
  • v4.0.0-alpha.11 Changes


    • New: change the Gradle plugin so that (unstable) custom handlers can be configured with instance instead of with a class name.

    ๐Ÿš€ Note that releases 4.0.0-alpha.9 and 4.0.0-alpha.10 were published incorrectly and should not be ๐Ÿ‘‰ used.

  • v4.0.0-alpha.1 Changes


    Kotlin + Java

    • New: GrpcClient.Builder.minMessageToCompress() configures which messages are compressed. This will completely disable compression if the size is Long.MAX_VALUE. We've seen problems where some Golang gRPC servers don't support compression; setting this to MAX_VALUE is necessary to interop with them.
    • New: SchemaReflector is our initial implementation of the [gRPC Server Reflection Protocol][reflect]. Note that although we implement the business logic of gRPC reflection, we don't offer a gRPC server built into Wire.
    • New: Support rpcRole = 'none' in the Gradle plugin to generate neither client nor server code.
    • Fix: Generate @Deprecated annotations on deprecated messages, fields, enums, and enum constants.
    • Fix: Update the Wire Gradle plugin to register generated .java sources with the Java compiler. Previously this was broken if the Kotlin plugin was installed.
    • Fix: Use Gradle's logging mechanism to reduce output when Wire generates code.
    • Fix: Update the Wire Gradle plugin to clear the output directory before generating code. This prevents the need to do a clean build after removing a message type.
    • Fix: Permit values other than 0 and 1 when decoding protobuf-encoded booleans. Previously we threw an IOException for other values; now all non-zero values are true.
    • Upgrade: [Okio 3.0.0-alpha.3][okio_3_0_0_a_3]. We now use Okio 3's FileSystem in SchemaLoader, which makes it easier to load .proto files from the classpath.


    • New: Support Timestamp and Duration.
    • Fix: Throw an error when encountering an unexpected ProtoReader.beginMessage() rather than calling fatalError().