Skip to content

Commit

Permalink
Add index pages for posix and niots transports (#34)
Browse files Browse the repository at this point in the history
Motivation:

The umbrella transport module points to the docs for the POSIX and NIOTS
transport which are both empty.

Modifications:

- Add index pages for the two transports
- Fix missing docs

Result:

Better docs
  • Loading branch information
glbrntt authored Dec 5, 2024
1 parent 5cd9f91 commit 86231a3
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# ``GRPCNIOTransportHTTP2Posix``

HTTP/2 client and server transports built on top of SwiftNIO's `NIOPosix` module.

## Overview

This module provides HTTP/2 transports for client and server built on top SwiftNIO's `NIOPosix`
module and uses SwiftNIO's `NIOSSL` module to provide TLS.

The two transport types are:
- `HTTP2ClientTransport.Posix`, and
- `HTTP2ServerTransport.Posix`.

### Availability

These transports are available on the following platforms:

- Linux (Ubuntu, CentOS, Amazon Linux, Red Hat Universal Base Image)
- macOS 15.0+
- iOS 18.0+
- tvOS 18.0+
- watchOS 11.0+


### Getting started

Bootstrapping a client or server is made easier using the `.http2NIOPosix` shorthand:

```swift
// Create a server resolving "localhost:31415" using the default transport
// configuration and default TLS security configuration.
try await withGRPCClient(
transport: try .http2NIOPosix(
target: .dns(host: "localhost", port: 31415),
transportSecurity: .tls
)
) { client in
// ...
}

// Create a plaintext server listening on "127.0.0.1" on any available port
// modifying the default configuration to set max concurrent streams to 256.
try await withGRPCServer(
transport: .http2NIOPosix(
address: .ipv4(host: "127.0.0.1", port: 0),
transportSecurity: .plaintext,
config: .defaults { config in
config.http2.maxConcurrentStreams = 256
}
),
services: [...]
) { server in
// ...
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# ``GRPCNIOTransportHTTP2TransportServices``

HTTP/2 client and server transports built on top of SwiftNIO's `NIOTransportServices` module.

## Overview

This module provides HTTP/2 transports for client and server built on top SwiftNIO's
`NIOTransportServices` module which provide TLS via Apple's Network framework.

The two transport types are:
- `HTTP2ClientTransport.TransportServices`, and
- `HTTP2ServerTransport.TransportServices`.

### Availability

These transports are available on the following platforms:

- macOS 15.0+
- iOS 18.0+
- tvOS 18.0+
- watchOS 11.0+


### Getting started

Bootstrapping a client or server is made easier using the `.http2NIOTS` shorthand:

```swift
// Create a server resolving "localhost:31415" using the default transport
// configuration and default TLS security configuration.
try await withGRPCClient(
transport: try .http2NIOTS(
target: .dns(host: "localhost", port: 31415),
transportSecurity: .tls
)
) { client in
// ...
}

// Create a server listening on "127.0.0.1" on any available port
// using default plaintext security configuration.
try await withGRPCServer(
transport: .http2NIOTS(
address: .ipv4(host: "127.0.0.1", port: 0),
transportSecurity: .plaintext,
config: .defaults { config in
config.http2.maxConcurrentStreams = 256
}
),
services: [...]
) { server in
// ...
}
```

0 comments on commit 86231a3

Please sign in to comment.