Skip to content

Releases: grpc/grpc-swift

gRPC Swift 1.0.0-alpha.11

24 Mar 13:32
373ffd5
Compare
Choose a tag to compare
Pre-release

SemVer Patch

  • Remove required platforms from SPM (#761)
  • Added .git ending for swift-log (#760, patch credit to @fabianfett)

gRPC Swift 1.0.0-alpha.10

19 Mar 13:09
ec809b7
Compare
Choose a tag to compare
Pre-release

⚠️ 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)

gRPC Swift 1.0.0-alpha.9

09 Jan 12:33
be70633
Compare
Choose a tag to compare
Pre-release

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

Many of the types which should be implementation details are now either internal or private. Similarly, a number of components have been refactored to be extensible in a way which doesn't break the API in the future.

In addition to the API changes:

  • Avoid protocol check after TLS handshake (#685, credit to @WilliamIzzo83)
  • log channel readiness and eventloop for debugging (#676, credit to @weissi)
  • Fix typo in the "grpc-exp" ALPN name (#681)
  • Miscelanoues CI and infrastructure improvements (#670, #691, #686, #677)

API Changes:

  • Make GRPCTimeout extensible and add documentation. (#689)
  • Make gRPC error types extensible (#669)
  • Rename asGRPCStatus() to makeGRPCStatus(), add documentation. (#690)
  • Remove outdated examples/documentation (#692)
  • Simplify compression representation. (#688)
  • Make LengthPrefixedMessageWriter internal (#673)
  • Make server request/response parts internal (#672)
  • Make LengthPrefixedMessageReader internal (#674)
  • Make GRPCClientUserEvent internal (#675)
  • Make client request/response parts internal (#671)
  • Make server CallHandlers more internal (#657) [email protected]
  • Make WebCORSHandler internal (#664)
  • Make GRPCClientChannelHandler underscore internal (#662)
  • Make HTTPProtocolSwitcher internal (#661)
  • Make GRPCServerCodec internal (#660)
  • Make TLSVerificationHandler internal (#659)
  • Make DelegatingErrorHandler underscored-internal (#658)
  • Make GRPCApplicationProtocolIdentifier internal (#665)
  • Make header names internal (#666)

gRPC Swift 1.0.0-alpha.8

12 Dec 09:54
58762ba
Compare
Choose a tag to compare
Pre-release
  • Correctly set the authority to the host rather than scheme (#637, patch credit to @adolfo)
  • Allow client error delegate to have a logger injected (#654)
    • ⚠️ This is a breaking change. Implementations of ClientErrorDelegate must now accept an additional argument loggerin didCatchError.
  • Fix compile issues in Google/NaturalLanguage (#643)
  • Don't log at info level (#651)
  • Ignore SSL unclean shutdown errors (#650)
  • Update dependencies (#649)
  • Update minimum required version of SwiftNIO SSL (#640)
  • Build protoc plugins in release mode (#647)
  • A number of performance improvements (#653, #645, #644, #641)

gRPC Swift 1.0.0-alpha.7

14 Nov 12:30
062b341
Compare
Choose a tag to compare
Pre-release

Important: this change contains breaking changes to the generated client code.

  • License header checking script (#587)
  • Run CI on Swift 5.1 and Swift 5.0 (#588)
  • Add missing environment variable for interop tests (#589)
  • RPC state machine for client (#580)
  • Add/update GOVERNANCE.md, CODE-OF-CONDUCT.md and CONTRIBUTING.md (#595)
  • Add HelloWorld example (#590)
  • Add a RouteGuide example and tutorial (#598)
  • Fix up markdown (#600)
  • Reduce logging in the message reader (#602)
  • Workaround for SR-11564 (#608)
  • Provide a channel handler using the client state machine (#601)
  • Use string comparison instead of regex in the HTTPProtocolSwitcher (#618)
  • Update the client to use the new state machine backed channel handler (#625)
  • Update CI to use more recent Swift versions (#629)
  • Reduce logging verbosity (#632)
  • Inline service name into the generated path (#633)
  • Require a lock to access the connectivity state delegate (#634)
  • import FoundationNetworking if possible (#586)
  • Remove unexported executables from products (#592)
  • Fix interoperability tests. (#596)

Release 0.10.0

25 Oct 09:27
d46240e
Compare
Choose a tag to compare
  • Use protoToModuleMappings in input/output names. (#553)
  • Update vendored gRPC-core to v1.23.0. (#563)

gRPC Swift 1.0.0-alpha.6

18 Sep 13:54
Compare
Choose a tag to compare
Pre-release
  • Fix deprecation warnings (#585) - George Barnett (3972a3f)
  • Rename the plugin: protoc-gen-swiftgrpc -> protoc-gen-grpc-swift (#584) - George Barnett (ca68315)
  • Explain platform support in the readme. (#578) - Daniel Alm (99d51ca)
  • Add MAINTAINERS.md. (#564) (#576) - George Barnett (e0c70ce)

gRPC Swift 1.0.0-alpha.5

03 Sep 09:29
b42a25b
Compare
Choose a tag to compare
Pre-release
  • Always use the same event loop for a client connection (#562)
  • Allow timeouts to be rounded so they may comply with the spec (#569)
  • Separate trailers from GRPCStatus (#572)
  • Replace Commander usage with our own CLI parsing (#570)
  • Split the Echo example into model, implementation and runtime (#567)
  • CI and version updates (#561, #571, #568, #573)

gRPC Swift 1.0.0-alpha.4

20 Aug 10:32
edd9bf0
Compare
Choose a tag to compare
Pre-release
  • Increase the minimum required version of NIOSSL (#559)
  • Increase the minimum required version of NIOHTTP/2 (#548)
  • Implement the connection backoff interoperability test (#557)
  • Default to using backoff for making connections (#554)
  • Make the connection backoff iterator continually produce backoff (#554)
  • Fix a rare thread safety issue in tests (#551)
  • Add server logging (#547)
  • Use protoToModuleMappings in input/output names (#555)
  • Package structure updates, typo fixes, dead code removal (#558, #556, #549, #546, #544)

gRPC Swift 1.0.0-alpha.3

07 Aug 09:38
Compare
Choose a tag to compare
Pre-release
  • Add sendMessages and flush to StreamingRequestClientCall (#538)
  • Fix building for 32-bit architectures (#535)
  • Disable static stdlib linking. (#533)
  • Fix typo in metadata key for server-hostname (#531)