This repository contains a gRPC implementation for Swift. You can read more about gRPC on the gRPC project's website.
gRPC Swift v2.x is under active development on the
main
branch and takes full advantage of Swift's native concurrency features.v1.x is still supported and maintained on the
release/1.x
branch.
- 📚 Documentation and tutorials are available on the Swift Package Index
- 💻 Examples are available in the Examples directory
- 🚀 Contributions are welcome, please see CONTRIBUTING.md
- 🪪 License is Apache 2.0, repeated in LICENSE
- 🔒 Security issues should be reported via the process in SECURITY.md
- 🔀 Related Repositories:
grpc-swift-nio-transport
contains high-performance HTTP/2 client and server transport implementations for gRPC Swift built on top of SwiftNIO.grpc-swift-protobuf
contains integrations with SwiftProtobuf for gRPC Swift.grpc-swift-extras
contains optional extras for gRPC Swift.
The following snippet contains a Swift Package manifest to use gRPC Swift v2.x with the SwiftNIO based transport and SwiftProtobuf serialization:
// swift-tools-version: 6.0
import PackageDescription
let package = Package(
name: "foo-package",
platforms: [.macOS("15.0")],
dependencies: [
.package(url: "https://github.com/grpc/grpc-swift.git", from: "2.0.0-beta.2"),
.package(url: "https://github.com/grpc/grpc-swift-nio-transport.git", from: "1.0.0-beta.2"),
.package(url: "https://github.com/grpc/grpc-swift-protobuf.git", from: "1.0.0-beta.2"),
],
targets: [
.executableTarget(
name: "bar-target",
dependencies: [
.product(name: "GRPCCore", package: "grpc-swift"),
.product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
.product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
]
)
]
)