{"id":20677376,"url":"https://github.com/operatorfoundation/shapeshifter-swift-transports","last_synced_at":"2025-04-19T20:57:55.336Z","repository":{"id":76896958,"uuid":"108177252","full_name":"OperatorFoundation/Shapeshifter-Swift-Transports","owner":"OperatorFoundation","description":"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/","archived":false,"fork":false,"pushed_at":"2022-06-24T01:25:02.000Z","size":2329,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-29T13:22:43.934Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OperatorFoundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-10-24T20:03:18.000Z","updated_at":"2022-12-23T09:09:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"95fc4d38-8ff5-41b1-81f1-bfb55f3509fe","html_url":"https://github.com/OperatorFoundation/Shapeshifter-Swift-Transports","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2FShapeshifter-Swift-Transports","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2FShapeshifter-Swift-Transports/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2FShapeshifter-Swift-Transports/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2FShapeshifter-Swift-Transports/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OperatorFoundation","download_url":"https://codeload.github.com/OperatorFoundation/Shapeshifter-Swift-Transports/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249800237,"owners_count":21327023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T21:15:24.304Z","updated_at":"2025-04-19T20:57:55.330Z","avatar_url":"https://github.com/OperatorFoundation.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shapeshifter-Swift-Transports\nShapeshifter 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](https://github.com/Pluggable-Transports/Pluggable-Transports-spec)\n\n### Shapeshifter Transports\n\nThis is the repository for the shapeshifter transports library for the Swift\nprogramming language. If you are looking for a tool which you can install and\nuse from the command line, take a look at the [dispatcher](https://github.com/OperatorFoundation/shapeshifter-transports) instead.\n\nThe transports implement the Pluggable Transports 2.1 draft 1 specification available [here](https://github.com/Pluggable-Transports/Pluggable-Transports-spec/blob/master/releases/PTSpecV2.1Draft1/Pluggable%20Transport%20Specification%20v2.1%20-%20Swift%20Transport%20API%20v1.0%2C%20Draft%201.pdf) Specifically,\nthey implement the Swift Transports API v2.1 draft 1.\n\nThe purpose of the transport library is to provide a set of different\ntransports. Each transport implements a different method of shapeshifting\nnetwork traffic. The goal is for application traffic to be sent over the network\nin a shapeshifted form that bypasses network filtering, allowing\nthe application to work on networks where it would otherwise be blocked or\nheavily throttled.\n\nThe following transports are currently provided by this library:\n\n#### Wisp\n\nWisp is a native Swift transport that is compatible with obfs4 servers. \n\nSee the [README](https://github.com/OperatorFoundation/Shapeshifter-Swift-Transports/blob/master/Sources/Wisp/README.md) for information on usage.\n\n#### Optmizer\n\nOptimizer 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.\n\nSee the [README](https://github.com/OperatorFoundation/Shapeshifter-Swift-Transports/tree/master/Sources/Optimizer) for information on usage.\n\n#### Protean\n\nProtean is a pluggable transport that allows you to configure your own obfuscation.\n\nSee the [README](https://github.com/OperatorFoundation/Shapeshifter-Swift-Transports/tree/master/Sources/Protean)  for information on usage.\n\n## Installation\n\nThis library can be installed using  [Swift Package Manager](https://swift.org/package-manager/). Please see instructions for using an individual transport in that transport's readme. \n\n## Usage\n\nEach 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperatorfoundation%2Fshapeshifter-swift-transports","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperatorfoundation%2Fshapeshifter-swift-transports","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperatorfoundation%2Fshapeshifter-swift-transports/lists"}