Skip to content

Commit

Permalink
Simple index pages for docc (#170)
Browse files Browse the repository at this point in the history
Motivation:

An index page ties all the other documentation together

Modifications:

Add index pages for the library targets.
Correct a few minor errors in the main docs.

Result:

A more joined up documentation experience.
  • Loading branch information
PeterAdams-A authored Aug 12, 2022
1 parent da7c047 commit dabef81
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 14 deletions.
13 changes: 0 additions & 13 deletions Sources/NIOExtras/Docs.docc/Article.md

This file was deleted.

43 changes: 43 additions & 0 deletions Sources/NIOExtras/Docs.docc/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# ``NIOExtras``

A collection of helpful utilities to assist in building and debugging Swift-NIO based applications.

## Overview

A collection of helpful utilities to assist in building and debugging Swift-NIO based applications. Topics covered include packet capture, the logging of channel pipeline events, frame decoding of various common forms and helpful data types.

Debugging aids include `ChannelHandler`s to log channel pipeline events both inbound and outbound; and a `ChannelHandler` to log data in packet capture format.

To support encoding and decoding helpers are provided for data frames which have fixed length; are new line terminated; contain a length prefix; or are defined by a `context-length` header.

To help simplify building a robust pipeline the ``ServerQuiescingHelper`` makes it easy to collect all child `Channel`s that a given server `Channel` accepts.

Easy request response flows can be built using the ``RequestResponseHandler`` which takes a request and a promise which is fulfilled when an expected response is received.

## Topics

### Debugging Aids

- ``DebugInboundEventsHandler``
- ``DebugOutboundEventsHandler``
- ``NIOWritePCAPHandler``
- ``NIOPCAPRingBuffer``

### Encoding and Decoding

- ``FixedLengthFrameDecoder``
- ``NIOJSONRPCFraming``
- ``LengthFieldBasedFrameDecoder``
- ``NIOLengthFieldBasedFrameDecoderError``
- ``LengthFieldPrepender``
- ``LengthFieldPrependerError``
- ``LineBasedFrameDecoder``
- ``NIOExtrasErrors``
- ``NIOExtrasError``

### Channel Pipeline Aids
- ``ServerQuiescingHelper``
- ``RequestResponseHandler``

### Data Types
- ``NIOLengthFieldBitLength``
2 changes: 1 addition & 1 deletion Sources/NIOExtras/WritePCAPHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ public class NIOWritePCAPHandler: RemovableChannelHandler {
private var localAddress: SocketAddress?
private var remoteAddress: SocketAddress?

/// Reusable header for `. pcap` file.
/// Reusable header for `.pcap` file.
public static var pcapFileHeader: ByteBuffer {
var buffer = ByteBufferAllocator().buffer(capacity: 24)
buffer.writePCAPHeader()
Expand Down
27 changes: 27 additions & 0 deletions Sources/NIOHTTPCompression/Docs.docc/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# ``NIOHTTPCompression``

Automatic compression and decompression of HTTP data.

## Overview

Channel handlers to support automatic compression and decompression of HTTP data. Add the handlers to your pipeline to support the features you need.

`Content-Encoding`, `Content-Length`, and `accept-encoding` HTTP headers are set and respected where appropriate.

Be aware that this works best if there is sufficient data written between flushes. This also performs compute on the event loop thread which could impact performance.

## Topics

### Client Channel Handlers

- ``NIOHTTPRequestCompressor``
- ``NIOHTTPResponseDecompressor``

### Server Channel Handlers
- ``NIOHTTPRequestDecompressor``
- ``HTTPResponseCompressor``

### Compression Methods

- ``NIOCompression``
- ``NIOHTTPDecompression``
1 change: 1 addition & 0 deletions Sources/NIOHTTPCompression/HTTPDecompression.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import CNIOExtrasZlib
import NIOCore

/// Namespace for decompression code.
public enum NIOHTTPDecompression {
/// Specifies how to limit decompression inflation.
public struct DecompressionLimit {
Expand Down
35 changes: 35 additions & 0 deletions Sources/NIOSOCKS/Docs.docc/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# ``NIOSOCKS``

SOCKS v5 protocol implementation

## Overview

An implementation of SOCKS v5 protocol. See [RFC1928](https://www.rfc-editor.org/rfc/rfc1928).

Add the appropriate channel handler to the start of your channel pipeline to use this protocol.

For an example see the NIOSOCKSClient target.

## Topics

### Channel Handlers
- ``SOCKSClientHandler``
- ``SOCKSServerHandshakeHandler``

### Client Messages
- ``ClientMessage``
- ``ClientGreeting``
- ``SOCKSRequest``

### Server Messages
- ``ServerMessage``
- ``SelectedAuthenticationMethod``
- ``SOCKSResponse``

### Supporting Types
- ``AuthenticationMethod``
- ``SOCKSServerReply``
- ``SOCKSCommand``
- ``SOCKSAddress``
- ``SOCKSProxyEstablishedEvent``
- ``SOCKSError``

0 comments on commit dabef81

Please sign in to comment.