Skip to content

gRPC Swift 1.0.0-alpha.10

Pre-release
Pre-release
Compare
Choose a tag to compare
@glbrntt glbrntt released this 19 Mar 13:09
ec809b7

⚠️ This release contains a number of API breaking changes. ⚠️

In order to support payloads other than Protocol Buffers, for example Flatbuffers, it was necessary for much of the surface API to be generic over a new protocol, GRPCPayload instead of Message. This therefore requires that services are regenerated.

We also took this opportunity to address the interface between the generated code and runtime library: clients previously relied on ClientConnection for transport, they now rely on an something conforming to GRPClient; such as ClientConnection.

Generated clients have also had "Service" removed from their name. For example, the client for the Bar service in the Foo package would previously have been generated as Foo_BarServiceClient and will now be generated as Foo_BarClient. If you have multiple references to generated clients in your code which need updating it is possible to create a deprecated type alias such that Xcode will provide fixits:

@available(*, deprecated, renamed: "Foo_BarClient")
typealias Foo_BarServiceClient = Foo_BarClient

The list of supported platforms has now been added to Package.swift; dependents using Swift Package Manager must now also declare their supported platforms.

SemVer Major:

  • Adds the ability to use different payloads (#710, patch credit to @mustiikhalil)
  • Rename generated clients from FooServiceClient to FooClient (#736)
  • Put the client connection behind a protocol (#727)
  • Add supported platforms to Package.swift (#696)
  • Add support for compression (#714, #707, #729)

SemVer Minor:

  • Add a builder to make configuring a server easier (#752)
  • Add a builder to make configuring a client connection easier (#733)

SemVer Patch:

  • Fix bug with BoringSSLError.invalidSNIName exception (#702, patch credit to @esen)
  • Use metadata in log messages (#720, patch credit to @mariosangiorgio)
  • Fixed basic tutorial typo (#724, patch credit to @JanC)
  • Generate documentation from proto comments (#743)
  • Normalize user-provider headers (#730)
  • Fixed a bug where in some cases conformace to GRPCProtobufPayload could be generated multiple times (#740)
  • Add tests for custom payloads (#719)
  • Reorder some of the server logic. (#717)
  • Document how to create certificates/private keys from a string (#699)
  • Various infrastructure and documentation improvements (#695, #698, #701, #704, #713, #718, #728, #731, #734)