gRPC-Swift 1.8.0

gRPC-Swift 1.8.0

Jake PrickettGeorge BarnettCory BenfieldDaniel Alm 维护。



 
依赖关系
CGRPCZlib= 1.8.0
日志记录< 2.0.0, >= 1.4.0
SwiftNIO< 3.0.0, >= 2.32.0
SwiftNIOExtras< 2.0.0, >= 1.4.0
SwiftNIOHTTP2< 2.0.0, >= 1.22.0
SwiftNIOSSL< 3.0.0, >= 2.14.0
SwiftNIOTransportServices< 2.0.0, >= 1.11.1
SwiftProtobuf< 2.0.0, >= 1.19.0
 

  • gRPC 贡献者

CI Latest Version sswg:graduated|104x20

gRPC Swift

此仓库包含 gRPC Swift API 和代码生成器。

它旨在与 Apple 的 SwiftProtobuf 对 Protocol Buffers 的支持一起使用。这两个项目都包含用于 Google's Protocol Buffer 编译器 protoc 的代码生成插件,并且都包含构建和运行生成的代码所需的支持代码库。

提供 gRPC 客户端和服务器双方的 API 和生成代码,可以与 Xcode 或 Swift Package Manager 一起构建。支持所有四种 gRPC API 风格(单向、服务器流、客户端流和双向流),并且可以通过安全(TLS)或非安全通道建立连接。

版本

与由 gRPC 项目 提供的核心库相比,gRPC Swift 最近已经基于 SwiftNIO 重新编写。

版本 实现 分支 protoc 插件 CocoaPod 支持
1.x SwiftNIO main protoc-gen-grpc-swift gRPC-Swift 积极开发和支持
0.x gRPC C 库 cgrpc protoc-gen-swiftgrpc SwiftGRPC 不再开发;仅限安全修复

在本 README 的剩余部分中,将参照 gRPC Swift 的 1.x 版本。

支持的平台

gRPC Swift 的平台支持与Swift NIO相同,请参阅 Swift NIO 的支持平台

gRPC Swift 1.8.x及更新的最早支持版本是 5.4。对于1.7.x及更早版本,最旧的受支持Swift版本是 5.2。

从gRPC Swift 1.8.0开始,提供了使用Swift Concurrency支持的客户端和服务的版本,这需要Swift 5.6及更高版本。

获取gRPC Swift

gRPC Swift包含两个部分:gRPC库和API代码生成器。

获取 gRPC 库

Swift 包管理器

Swift 包管理器是获取 gRPC Swift 的首选方式。只需在 Package.swift 中添加包依赖即可

dependencies: [
  .package(url: "https://github.com/grpc/grpc-swift.git", from: "1.0.0")
]

...并且在不必要的目标中依赖 "GRPC"

.target(
  name: ...,
  dependencies: [.product(name: "GRPC", package: "grpc-swift")]
]
Xcode

从 Xcode 11 版本开始,可以将 Swift 包依赖项添加到 Xcode 项目中,并链接这些包的目标产品;这是将 gRPC Swift 与现有 xcodeproj 集成在一起的最简单方法。

手动集成

此外,可以手动将gRPC Swift集成到项目中

  1. 构建Xcode项目:swift package generate-xcodeproj
  2. 将生成的项目添加到您的项目中,并
  3. 添加对GRPC的构建依赖。

CocoaPods

gRPC Swift目前通过CocoaPods提供。从CocoaPods获取。要集成,请将以下行添加到您的Podfile

    pod 'gRPC-Swift', '~> 1.0.0'

然后,在命令行中运行pod install,并使用项目生成的.xcworkspace文件。您还可能需要在Podfile中添加use_frameworks!

⚠️如果您由于对'gRPC-Core'的传递性依赖而出现冲突模块,请参阅grpc/grpc-swift#945

获取protoc插件

Protocol Buffer编译器protoc的二进制发布版可在GitHub上找到。

要构建插件,请在主目录中运行make plugins。这使用Swift包管理器构建必要的两个插件:生成Protocol Buffer支持的protoc-gen-swift和生成gRPC接口的protoc-gen-grpc-swift

要安装这些插件,只需将主目录中出现的两个可执行文件(protoc-gen-swiftprotoc-gen-grpc-swift)复制到您的PATH环境变量的一部分目录。或者,在执行protoc时可以指定插件的完整路径。

或者,您可以通过将以下行添加到您的Podfile以获取插件的最新预编译版本

    pod 'gRPC-Swift-Plugins'

插件将在之后的Pods/gRPC-Swift-Plugins/文件夹中可用。

Homebrew

可以从homebrew安装插件

    $ brew install swift-protobuf grpc-swift

示例

gRPC Swift 提供了多个教程和示例。它们分布在两个目录下

  • /Sources/Examples 包含不依赖额外依赖项的示例,可以使用 Swift 包管理器进行构建。
  • /Examples 包含依赖于外部依赖项或可能无法使用 Swift 包管理器构建的示例(如 iOS 应用程序)。

一些示例附带了教程,包括

  • 快速入门指南,用于创建和运行您的第一个 gRPC 服务。
  • 基础教程,涵盖使用所有四种调用类型创建和实现 gRPC 服务的操作,以及配置服务器和生成客户端代码以对服务器进行调用的代码。
  • 拦截器教程,介绍如何创建和使用与 gRPC Swift 一起使用的拦截器。

文档

docs 目录中包含以下文档:

安全

请参阅 SECURITY.md

许可协议

gRPC Swift 根据gRPC的相同许可协议发布,在LICENSE中重复。

贡献

请积极参与!请参阅我们的贡献指南