Swiftpack.co -  OperatorFoundation/Shapeshifter-Swift-Transports as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Shapeshifter Swift Transports is a set of Pluggable Transports implementing the upcoming (currently unpublished) Swift API from the Pluggable Transports 2.1 specification https://OperatorFoundation.org/
.package(url: "https://github.com/OperatorFoundation/Shapeshifter-Swift-Transports.git", from: "v2.3.25")


Shapeshifter Swift Transports is a set of Pluggable Transports, written in Swift, implementing the upcoming (currently unpublished) Swift API from the Pluggable Transports 2.1 specification

Shapeshifter Transports

This is the repository for the shapeshifter transports library for the Swift programming language. If you are looking for a tool which you can install and use from the command line, take a look at the dispatcher instead.

The transports implement the Pluggable Transports 2.1 draft 1 specification available here Specifically, they implement the Swift Transports API v2.1 draft 1.

The purpose of the transport library is to provide a set of different transports. Each transport implements a different method of shapeshifting network traffic. The goal is for application traffic to be sent over the network in a shapeshifted form that bypasses network filtering, allowing the application to work on networks where it would otherwise be blocked or heavily throttled.

The following transports are currently provided by this library:


Wisp is a native Swift transport that is compatible with obfs4 servers.

See the README for information on usage.


Optimizer is a pluggable transport that uses one of several possible “Strategies” to choose between the transports you provide to create a connection. It is not a standalone transport, but is rather a mechanism for choosing between various transports in order to find the one best suited for the user’s needs.

See the README for information on usage.


Protean is a pluggable transport that allows you to configure your own obfuscation.

See the README for information on usage.


This library can be installed using Swift Package Manager. Please see instructions for using an individual transport in that transport's readme.


Each transport can be used in place of a Network.Framework Connection. It is necessary to create an instance of a connection factory for the given transport and use that to create your connection. From that point forward the transports are designed to look and behave in your code in the same manner as Network.Framework. Please see the readmes for the individual transports for information on how to get a Connection instance for that transport.


Stars: 2
Last commit: 5 days ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

2.4.0 - Removed Wisp (now a stand alone library)
5 days ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API