Muxi Yan 1e0de6af6a Merge pull request #15777 from muxi/cfstream-doc 7 anni fa
..
GRPCClient c635e41c22 Timeout and backoff 7 anni fa
ProtoRPC 10a8c16f24 Revert "Revert "Revert "Provide protocol for initializer of generated messages""" 7 anni fa
RxLibrary 4d6644ada8 Merge pull request #15429 from grpc/fix-conc-self 7 anni fa
examples a2da1d7b1b Scripts for iOS size audit 7 anni fa
tests 1176dc36c5 Add tests 7 anni fa
!ProtoCompiler-gRPCPlugin.podspec c79c156307 Regenrate projects 7 anni fa
!ProtoCompiler.podspec 81f8be347e Upgrade protobuf version in podspec 8 anni fa
BoringSSL.podspec f6246fd01d Change BoringSSL home page to github for China access 7 anni fa
CronetFramework.podspec 123d0dbd61 bug fix 9 anni fa
NetworkTransitionBehavior.md 5d4bb063e1 Fix grammar 7 anni fa
README-CFSTREAM.md ec1c014413 Update link to network transition behavior doc 7 anni fa
README.md 53e0b74a0a Specify minimum supported versions in README.md 8 anni fa
change-comments.py 7897ae9308 auto-fix most of licenses 8 anni fa
format-all-comments.sh 7897ae9308 auto-fix most of licenses 8 anni fa

README-CFSTREAM.md

Cocoapods

gRPC Objective-C with CFStream

gRPC Objective-C library now provides the option to use Apple's CFStream API (rather than TCP sockets) for networking. Using CFStream resolves a bunch of network connectivity transition issues (see the doc for more information).

CFStream integration is now in experimental state. You will need explicit opt-in to use it to get the benefits of resolving the issues above. We expect to make CFStream the default networking interface that gRPC uses when it is ready for production.

Usage

If you use gRPC following the instructions in README.md:

  • Simply replace the dependency on gRPC-ProtoRPC with gRPC-ProtoRPC/CFStream. The build system will take care of everything else and switch networking to CFStream.

If your project directly depends on podspecs other than gRPC-ProtoRPC (e.g. gRPC or gRPC-Core):

  • Make your projects depend on subspecs corresponding to CFStream in each gRPC podspec. For gRPC-Core, you will need to make sure that the completion queue you create is of type GRPC_CQ_NON_POLLING. This is expected to be fixed soon so that you do not have to modify the completion queue type.

Notes

  • Currently we do not support platforms other than iOS, although it is likely that this integration can run on MacOS targets with Apple's compiler.
  • Let us know if you meet any issue by filing issue and ping @muxi.