Releases: grpc/grpc-swift
gRPC Swift 1.0.0-alpha.11
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
⚠️ 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
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
- 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 ofClientErrorDelegate
must now accept an additional argumentlogger
indidCatchError
.
- 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
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
gRPC Swift 1.0.0-alpha.6
gRPC Swift 1.0.0-alpha.5
- 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
- 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)