grpc-swift

The Swift language implementation of gRPC.

APACHE-2.0 License

Downloads
432
Stars
1.9K
Committers
108

Bot releases are visible (Hide)

grpc-swift - gRPC Swift 1.0.0-alpha.10

Published by glbrntt over 4 years ago

⚠️ 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 - gRPC Swift 1.0.0-alpha.9

Published by glbrntt almost 5 years ago

⚠️ 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 - gRPC Swift 1.0.0-alpha.8

Published by glbrntt almost 5 years ago

  • 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 - gRPC Swift 1.0.0-alpha.7

Published by glbrntt almost 5 years ago

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)
grpc-swift - Release 0.10.0

Published by MrMage almost 5 years ago

  • Use protoToModuleMappings in input/output names. (#553)
  • Update vendored gRPC-core to v1.23.0. (#563)
grpc-swift - gRPC Swift 1.0.0-alpha.6

Published by glbrntt about 5 years ago

  • Fix deprecation warnings (#585) - George Barnett (3972a3f9)
  • Rename the plugin: protoc-gen-swiftgrpc -> protoc-gen-grpc-swift (#584) - George Barnett (ca683154)
  • Explain platform support in the readme. (#578) - Daniel Alm (99d51ca2)
  • Add MAINTAINERS.md. (#564) (#576) - George Barnett (e0c70ce6)
grpc-swift - gRPC Swift 1.0.0-alpha.5

Published by glbrntt about 5 years ago

  • 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 - gRPC Swift 1.0.0-alpha.4

Published by glbrntt about 5 years ago

  • 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 - gRPC Swift 1.0.0-alpha.3

Published by MrMage about 5 years ago

  • 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)
grpc-swift - gRPC Swift 1.0.0-alpha.2

Published by MrMage about 5 years ago

Major Changes:

  • Provide restricted TLS configurations (#513)
  • Rename GRPCNIO to PlatformSupport (#522)
  • Remove onNext from connectivity state delegate (#506)

Patches:

  • Add client-side logging with swift-log (#514)
  • Delay creating event observers for client streaming calls (#523)
  • Fallback to the hostname for TLS if a hostname override isn't provided (#528)
  • Improvements to connectivity state management (#510, #529)
  • Avoid a conformance error in the interoperability test CLI when used with SwiftUI (#518)
  • Test fixes and improvents (#503, #524, #527, #521)
  • Typo fixes (#512)
  • Provide a git commit template. (#508, #509)
  • Revert to Apache 2.0 license verbatim [skip ci] (#504)
  • Add missing copyright headers (#505)
grpc-swift - Release 0.9.1

Published by MrMage over 5 years ago

Relevant for library users:

  • Support tvOS (#446)
  • Improve Carthage compatibility (#493)
  • Avoid linking nghttp2 in Carthage project (#450)
  • Fix two memory leaks and update a link in the README. (#501)
  • Fix a compiler warning. (#499)
  • Fix libtool warning when compiling with bazel (#447)

Less visible changes:

  • Update the test certificates and increase their validity to 10 years. (#494)
  • Add a swift_versions flag to the Podspec. (#500)
  • Revert to Apache 2.0 license verbatim (#498)
  • Update README.md for examples to point to correct folders (#473)
grpc-swift - gRPC Swift 1.0.0-alpha.1

Published by MrMage over 5 years ago

First "official" preview of SwiftGRPC based on SwiftNIOHTTP2. See README.md for a guide to the library's new interface.

grpc-swift - Fixes for Swift 5

Published by rebello95 over 5 years ago

This release contains fixes for Swift 5 warnings that were emitted by SwiftGRPC and SwiftProtobuf.

  • Bump version to 0.9.0 (#444) - Michael Rebello (d5f0c46)
  • Try de-flaking testMultipleConnectivityObserversAreCalled. (#441) - Daniel Alm (c0eca15)
  • Update SwiftProtobuf to 1.5.0 (#440) - Michael Rebello (2d822f1)
  • Run CI on both Swift 4.2 and 5, and fix Swift 5 warning (#426) - Michael Rebello (0f2af51)
  • Change the swiftc argument to use static Swift libraries. (#424) - Daniel Alm (6bbc15c)
grpc-swift - Release 0.8.2

Published by timburks over 5 years ago

  • Update vendored gRPC-core to v1.19.1. This commit also fixes a few minor problems in the vendoring
    scripts and updates a call in shim/channel.c to use a modified API.

  • Update ClientCancellingTests to give clients more time to cancel before the server finishes streaming.

  • Update Roots.swift to use the latest roots.pem from gRPC.

  • Add SleepingEchoProvider.

  • Updating podspec. gRPC-Core dependency is v1.19.0. There was no podspec published for gRPC-Core v1.19.1
    but it has no changes in the C layer: vendoring v1.19.0 yields the same code as vendoring v1.19.1.

  • Changes from running "make project-carthage"

grpc-swift - Release 0.8.1

Published by rebello95 over 5 years ago

  • Update to 0.8.1 - Michael Rebello (f8738a6)
  • Disable iOS 12 cellular connectivity monitor by default - Michael Rebello (58a009b)
  • Implement async client test stub methods (#378) - Carlos Pages (630dfa5)
  • Temporarily disable NIOClientTimeoutTests.testBidirectionalStreamingTimeoutAfterSending on Linux for now (#409) - Daniel Alm (4df501a)
  • Use FileHandle instead of io.swift. (#408) - Martin Petrov (1d056f1)
  • Update Echo certificate and key (#407) - George Barnett (14734c7)
  • Rewrite LengthPrefixedMessageReader and tests (#397) - George Barnett (143255e)
  • Allow generating test stubs separately from the client implementation (#402) - Martin Petrov (869c168)
  • Generate client test stubs in a dedicated section. (#403) - Martin Petrov (90a5498)
  • Add public init to client call unary stubs. (#401) - Martin Petrov (dc2e8bb)
  • Mark unary async calls as @discardableResult. (#399) - Martin Petrov (f7807da)
  • Generate ClientCallUnary test stubs. (#398) - Martin Petrov (c0478aa)
  • Add/update scripts for vendoring dependencies (#396) - Michael Rebello (9745a76)
  • Fix crashes due to mismatching responses sent to the channel when event observer factories fail. (#395) - Daniel Alm (772b78e)
  • Enforce request cardinality for unary-request calls also for the case of zero request messages being sent. (#392) - Daniel Alm (d4a6366)
  • Add public factory methods for CallResult. (#394) - Martin Petrov (140d34a)
  • Make a few more write calls flushing. (#391) - Daniel Alm (30a7fbc)
  • Refactor some properties shared by all server-side call contexts into a common ServerCallContext protocol … (#389) - Daniel Alm (c082197)
grpc-swift - Release 0.8.0

Published by rebello95 over 5 years ago

  • Update CocoaPods & Carthage for 0.8.0 release (#370) - Michael Rebello (8b064bd)
  • Add ClientNetworkMonitor for tracking network changes (#387) - Michael Rebello (3b3c5c5)
  • First pass implementation of NIO client (#357) - George Barnett (97ff923)
  • Clean up gRPC.swift (#386) - Michael Rebello (ee0f374)
  • Add ability to manually shut down channels (#384) - Michael Rebello (930440a)
  • Update releasing instructions (#383) - Michael Rebello (f5c0d63)
  • Comments/cleanup to Package.swift. (#371) - Daniel Alm (ba335b2)
  • Refactor channel connectivity to avoid multiple spin loops (#380) - Michael Rebello (10aff09)
  • Improve error handling in NIO server. (#364) - George Barnett (158c4ef)
  • Fix channel credentials memory leak in shims (#369) - Kevin Sweeney (587218a)
  • Make ConnectivityObserver class final (#375) - Michael Rebello (5f24269)
  • Store the root certificates as a multi-line string literal. (#372) - Daniel Alm (ac3e175)
  • Run ChannelCrashTests on Linux/CI (#379) - Michael Rebello (b899a30)
  • Move ConnectivityState to new file & update initializer (#376) - Michael Rebello (9dff24d)
  • Merge pull request #350 from sergiocampama/http1 - Tim Burks (ac1939e)
  • Adds Echo Web example with functional prototype - Sergio Campama (86748a7)
  • Add HTTP1 Tests for GRPCSwiftNIO - Sergio Campama (eee57da)
  • Add gRPC Web support. - Sergio Campama (24c8e5d)
  • Proposal to fix #362. (#363) - Alexey Gordeev (0195dfd)
  • Allow client to specify metadata per call (#356) - Taeho Kim (3cd505a)
  • Update SwiftProtobuf to 1.3.1 (#367) - Michael Rebello (96bf49e)
  • Improve memory management in Channel (#368) - Kevin Sweeney (fcb8ab3)
  • XCode 10.1 + Carthage support (#360) - Dmitry Malakhov (99d3834)
  • Upgrade swift-nio to 1.12 - George Barnett (a43337c)
  • Allow "FileNaming" option to be set via CLI - George Barnett (78c5fed)
  • Bump podspec to 0.7.0 - Michael Rebello (6928fb2)
grpc-swift - Release 0.7.0

Published by rebello95 almost 6 years ago

  • Support proto-gen-swift's proto-to-module mapping. (ff2d161 - Tony Allevato)
  • Update Linux build documentation (#346) (824814b - George Barnett)
  • Add libnghttp2 depdendency to Docker image (#338) (#344) (c3a03f1 - George Barnett)
  • Add environment flag for BoringSSL/OpenSSL on MacOS (#341) (54659b8 - james h)
  • First implementation of gRPC based on SwiftNIO (#281) (bf20e93 - Daniel Alm)
  • Remove .swift-version file (d3ad74b - Yosuke Ishikawa)
  • Add support for RPC status (#331) (b6dc500 - Sebastian Thiebaud)
  • Fix crash during Channel with subscription is destroying (#328) (2fd06dc - slavabulgakov)
  • Improve the documentation on building the protoc plugins and add a make plugin option. (48c274f - Daniel Alm)
  • Remove build-carthage altogether from CI for now. (7e6e28c - Daniel Alm)
  • Pull build-carthage to the beginning of the build process for faster CI iteration times on failing Carthage builds. (8cd1420 - Daniel Alm)
  • Minor tweaks in preparation for SwiftGRPCNIO. (00d18f6 - Daniel Alm)
  • Transmission type parameters for sync/async code generation (611e527 - Pontus Andersson)
  • Re-run make project-carthage (6cc5371 - Yosuke Ishikawa)
  • Replace absolute path with relative path after generating xcodeproj (30441f7 - Yosuke Ishikawa)
  • Docs/add question template (#310) (0faf1d6 - tikidunpon)
  • Add io.grpc. prefix to bundle identifier (c9b15b8 - Yosuke Ishikawa)
  • Update README.md (02b8fc5 - Daniel Alm)
  • Update README.md (8ff1778 - Daniel Alm)
  • Update README.md (ec7c3e4 - Daniel Alm)
  • Update README.md (52195d2 - Daniel Alm)
  • Tweak Echo Readme (see #273) (a387dd6 - Daniel Alm)
  • docs: add a mention about resolved issues about ssl. (5ba63b6 - tikidunpon)
  • docs: add issue template for bug reporting. (660adca - tikidunpon)
grpc-swift - Release 0.6.0

Published by rebello95 almost 6 years ago

  • Cut a 0.6.0 release due to the breaking changes in SwiftProtobuf 1.1 (ed8a7e5 - GitHub)
  • Several fixes to the example projects. (696cd46 - Daniel Alm)
  • Update CLA link to point to CNCF CLA. (c3a071b - Tim Burks)
  • Update Carthage project with SwiftProtobuf 1.1.1 (9841080 - Michael Rebello)
  • Update examples to SwiftProtobuf 1.1.1 (a86b934 - Michael Rebello)
  • Update README with swift-protobuf version (9db4d0b - Michael Rebello)
  • Update SwiftProtobuf to 1.1.1 (6c6d9be - Michael Rebello)
  • Remove Linux RUNME.sh script (5dfda65 - Michael Rebello)
grpc-swift - Release 0.5.1

Published by rebello95 almost 6 years ago

  • Fix -Wstrict-prototypes warning (c03c5c7 - Michael Rebello)
  • Bump podspec to 0.5.1 (021075e - Michael Rebello)
  • Project patch script rework. (4984951 - Daniel Alm)
  • Only make the Swift Xcode project (instead of a full Xcode build) on macOS CI, as that is covered by the Carthage build already. (165f684 - Daniel Alm)
  • Fix make clean and switch to Carthage debug builds on CI for improved performance. (3e8720e - Daniel Alm)
  • Support folding the output of individual build steps in the Travis log. (5130063 - Daniel Alm)
  • Lock the SwiftProtobuf dependency to 1.0.3, up to next minor (#289) (78ac010 - Daniel Alm)
  • version SwiftGRPC-Carthage.xcodeproj after CgRPC fix (55cc056 - Jonas Vautherin)
  • fix CgRPC target in generated xcodeproj files (bea6195 - Jonas Vautherin)
  • Add "Releasing" section for CocoaPods to the ReadMe (36dbda1 - Michael Rebello)
  • Update carthage xcodeproj (4cc9c3c - Jonas Vautherin)
  • version SwiftGRPC-Carthage.xcodeproj for Carthage (e07895f - Jonas Vautherin)
  • Add make target generating an xcodeproj for Carthage. (ea2babf - Jonas Vautherin)
  • fix make clean target (d8b2b51 - Jonas Vautherin)
  • [README] Update the link to the Echo sample project. (3eade39 - Shinping Bai)
  • PR Feedback (7340be3 - Brian Hatfield)
  • Expose google cgrpc credential mode (b4414b8 - Brian Hatfield)
  • Remove Czlib dependency from SimpleXcode example (325c9cf - koichi.tanaka)
  • Fix a header search path for CgRPC and some compile error for „Echo“ example (44dfc81 - koichi.tanaka)
  • Remove Czlib from README (0c3ce55 - koichi.tanaka)
  • Remove Czlib from dependencies (ec3c2a9 - koichi.tanaka)
  • Update Dockerfile (62e4e3c - GitHub)
  • add "make project" (05b27cb - GitHub)
grpc-swift - Release 0.5.0

Published by rebello95 almost 6 years ago

  • Update podspec to version 0.5.0. (f11ad0b - Tim Burks)
  • Create ServerStatus in Core (045bc17 - ito_kyohei)
  • Code review fixes. (5f0531d - Daniel Alm)
  • Fix compilation under Linux. (3130eea - Daniel Alm)
  • Fix a bug and test for it. (b34303c - Daniel Alm)
  • Add a few more tests to ensure that trailing metadata is sent as expected. (22dee41 - Daniel Alm)
  • Reword documentation (c317f9d - Nate Armstrong)
  • Rename "services" to "serviceProviders". (a6e8cbb - Daniel Alm)
  • Add security tests to LinuxMain (df96858 - Nate Armstrong)
  • Document rootCerts param (22da1da - Nate Armstrong)
  • Update TestKeys generator and include cert files (1e19905 - Nate Armstrong)
  • Remove comment (d5ff00d - Nate Armstrong)
  • Add tests for mutual auth (18af90f - Nate Armstrong)
  • For service servers, replace inheritance with composition. (98f7fa6 - Daniel Alm)
  • Added requited designation to allow to create ServiceClient dynamically (12340a4 - Carlos Pages)
  • Make ChannelArgument extensible with custom values. (4f9e7a5 - Daniel Alm)
  • Make the build commands less verbose. (ec8f37b - Daniel Alm)
  • Pass pointer (2252397 - Nate Armstrong)
  • Fix memory leak and whitespace (706ed74 - Nate Armstrong)
  • Cast malloc result (a2b983a - Nate Armstrong)
  • Pass NULL if client certs or key are not given (f477ce5 - Nate Armstrong)
  • Update ServiceClient init (b795d14 - Nate Armstrong)
  • Add support for TLS mutual auth (0251dd8 - Nate Armstrong)
  • Fix building with a clean Xcode and add a CI run to ensure just that. (56ecb72 - Daniel Alm)
  • Fix linking with OpenSSL on Linux. (8ef093b - Daniel Alm)
  • Move another compiler directive into vendor-grpc.sh. (03f4309 - Daniel Alm)
  • Re-add swift-nio-zlib-support for macOS builds. (c12125b - Daniel Alm)
  • Update Google sample for recent API changes. (2cc6af7 - Tim Burks)
  • Move a compilation flag out of the Makefile and fix-project-settings.rb and into vendor-grpc.sh, which adds them to Sources/CgRPC/third_party/nanopb/pb.h. (4a16c13 - Daniel Alm)
  • Re-add swift-nio-zlib-support for macOS builds. (0368de9 - Daniel Alm)
  • Also update the Mac Travis system images to Xcode 9.3. (070170d - Daniel Alm)
  • Update .travis-install.sh to Swift 4.1.1. (470fb2f - Daniel Alm)
  • Update CgRPC to v1.12.0 and BoringSSL to 10.0.4 (I guess?). This change requires Swift 4.1 and Ruby (with the 'xcodeproj' gem) installed to compile if building via SPM. (75940a4 - Daniel Alm)
  • Link CgRPC with openssl instead of BoringSSL under Linux. (d56e1ca - Daniel Alm)
  • Add a few channel arguments (3cd89dd - Sebastian Thiebaud)
  • PR changes (0d25ef8 - Sebastian Thiebaud)
  • Remove print statements (ad6e022 - Sebastian Thiebaud)
  • PR changes (4ca615a - Sebastian Thiebaud)
  • Add comments (e853032 - Sebastian Thiebaud)
  • PR changes (0891482 - Sebastian Thiebaud)
  • Add timeout argument to makeCall (0d67da9 - ito_kyohei)
  • PR changes (255ce88 - Sebastian Thiebaud)
  • Make ServiceServer log calls to unknown methods. (e144258 - Daniel Alm)
  • Replace Metadata.description with Metadata.dictionaryRepresentation.description. (588963a - Daniel Alm)
  • Explicitly import dispatch (76faf09 - Chris Vanderschuere)
  • Implement connectivity state property and observers (#8) (0bd14d8 - Chris Vanderschuere)
Package Rankings
Top 0.83% on Cocoapods.org
Top 17.72% on Formulae.brew.sh
Top 11.36% on Carthage
Top 2.15% on Swiftpackageindex.com