Skip to content

rnro/swift-tls

 
 

Repository files navigation

Swift TLS

SwiftTLS provides a minimal, Swift-native implementation of the TLS 1.3 handshake to support the QUIC transport protocol. This package is intended to support the implementation of QUIC in SwiftNetwork.

SwiftTLS supports a minimal set of features and intentionally does not allow negotiation of older versions of TLS.

Note

At this time, all types exposed in this package are marked as SPI and subject to change at any time.

Getting Started

Prerequisites

  • Swift 6.3 and up
  • macOS 26.0 and up or Linux (Ubuntu 22.04+)
  • Xcode 26.0 and up (Apple platforms only)

Building and testing

To build via the command line (for all platforms), run at the root of the package:

swift build

To run all unit tests, run

swift test

Unit tests can also be run by filtering a specific class or function:

% swift test --filter HandshakeStateMachineTests
% swift test --filter HandshakeStateMachineTests.testStartHandshake

GitHub runs the unit tests automatically when you open or update a pull request. See CONTRIBUTING for details.

Contributing

The SwiftTLS Contributing Guide includes detailed information about participating in the project.

We welcome the following contributions:

  • Reporting bugs with clear, reproducible steps via GitHub Issues
  • Improving documentation to make the project more accessible
  • Adding or enhancing tests to improve reliability and coverage
  • Adding ports to new platforms
  • Triaging issues by providing feedback, testing, and validation
  • Participating in the Networking category on the Swift Forums

SwiftTLS has a limited scope and is focused on supporting specific projects, such as supporting QUIC in SwiftNetwork. Pull requests that add new functionality or expand the surface will not be accepted at this time.

About

Swift implementation of TLS 1.3 for QUIC.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 100.0%