{"id":15038592,"url":"https://github.com/operatorfoundation/shapeshifter-transports","last_synced_at":"2025-04-09T23:41:16.946Z","repository":{"id":16432239,"uuid":"73853276","full_name":"OperatorFoundation/shapeshifter-transports","owner":"OperatorFoundation","description":"Shapeshifter Transports is a set of Pluggable Transports implementing the Go API from the Pluggable Transports 2.0 specification","archived":false,"fork":false,"pushed_at":"2023-05-01T01:19:42.000Z","size":801,"stargazers_count":37,"open_issues_count":2,"forks_count":12,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-24T01:35:18.001Z","etag":null,"topics":["anticensorship","censorship-circumvention","golang","internet-freedom","pluggable-transports","swift"],"latest_commit_sha":null,"homepage":"https://OperatorFoundation.org/","language":null,"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}},"created_at":"2016-11-15T20:39:36.000Z","updated_at":"2025-01-14T01:38:52.000Z","dependencies_parsed_at":"2024-06-18T20:11:40.354Z","dependency_job_id":null,"html_url":"https://github.com/OperatorFoundation/shapeshifter-transports","commit_stats":null,"previous_names":[],"tags_count":573,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2Fshapeshifter-transports","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2Fshapeshifter-transports/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2Fshapeshifter-transports/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OperatorFoundation%2Fshapeshifter-transports/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OperatorFoundation","download_url":"https://codeload.github.com/OperatorFoundation/shapeshifter-transports/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131467,"owners_count":21052819,"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":["anticensorship","censorship-circumvention","golang","internet-freedom","pluggable-transports","swift"],"created_at":"2024-09-24T20:39:05.529Z","updated_at":"2025-04-09T23:41:16.925Z","avatar_url":"https://github.com/OperatorFoundation.png","language":null,"readme":"# The Operator Foundation\n\n[Operator](https://operatorfoundation.org) makes usable tools to help people around the world with censorship, security, and privacy.\n\n## Shapeshifter\n\nThe Shapeshifter project provides network protocol shapeshifting technology\n(also sometimes referred to as obfuscation). The purpose of this technology is\nto change the characteristics of network traffic so that it is not identified\nand subsequently blocked by network filtering devices.\n\nThere are two components to Shapeshifter: transports and the dispatcher. \n\nIf you are an end user that is trying to circumvent filtering on your network, or a developer that wants to add pluggable transports to an existing tool that is not written in the Go programming language, then you probably want [shapeshifter-dispatcher](https://github.com/OperatorFoundation/shapeshifter-dispatcher). Please note that familiarity with executing programs on the command line is necessary to use this tool.\n\nIf you are looking for a complete, easy-to-use VPN that incorporates shapeshifting technology and has a graphical user interface, consider\n[Moonbounce](https://github.com/OperatorFoundation/Moonbounce), an application for macOS which incorporates shapeshifting without the need to write code or use the command line.\n\n### Shapeshifter Transports\n\nThe purpose of the transport suite is to provide a variety of transports to choose from. 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.\n\nEach transport provides a different approach to shapeshifting. These transports are provided as a Go library which can be integrated directly into applications. The dispatcher is a command line tool which provides a proxy that wraps the transport library. It has several different proxy modes and can proxy both TCP and UDP traffic.\n\nThese transports implement the [Pluggable Transports 3.0](https://github.com/Pluggable-Transports/Pluggable-Transports-spec/tree/main/releases/PTSpecV3.0) specification. Specifically, they implement the Go Transports API v3.\n\nIf you are a tool developer working in the Go programming language, then you\nprobably want to use one or more transport libraries directly in your application.\n\n\nThe following transports are currently implemented in Go:\n\n#### Replicant\n\n[Replicant](https://github.com/OperatorFoundation/Replicant-go) is Operator's flagship transport which can be tuned for each adversary. It is designed to be more effective and efficient that older transports.\nIt can be quickly reconfigured as filtering conditions change by updating just the configuration file.\n\nA [Swift implementation](https://github.com/OperatorFoundation/ReplicantSwift.git) is also available.\n\n#### Starbridge\n\n[Starbridge](https://github.com/OperatorFoundation/Starbridge-go.git) is a Pluggable Transport that requires only minimal configuration information from the user. Under the hood, it uses the Replicant Pluggable Transport technology for network protocol obfuscation. [Replicant](https://github.com/OperatorFoundation/Replicant-go) is more complex to configure, so Starbridge is a good starting point for those wanting to use the technology to circumvent Internet cenorship, but wanting a minimal amount of setup.\n\nA [Swift implementation](https://github.com/OperatorFoundation/Starbridge.git) is also available.\n\n#### Shadow (Shadowsocks)\n\nShadowsocks is a simple, but effective and popular network traffic obfuscation tool that uses basic encryption with a shared password.\n[Shadow](https://github.com/OperatorFoundation/Shadow-go) is a wrapper for Shadowsocks that makes it available as a Pluggable Transport.\n\nA [Swift implementation](https://github.com/OperatorFoundation/ShadowSwift.git) is also available.\n\n#### Optimizer\n\n[Optimizer](https://github.com/OperatorFoundation/Optimizer-go) is a pluggable transport that works with your other transports to find the best option. It has multiple configurable strategies to find\nthe optimal choice among the available transports. It can be used for numerous optimization tasks, such as round\nrobin load spreading among multiple transport servers or minimizing latency given multiple transport configurations.\n\n\n#### Installation\n\nFor individual installation instructions, see the README's for the individual transports:\n\n- [Replicant README](https://github.com/OperatorFoundation/Replicant-go/blob/main/README.md)\n\n- [Starbridge README](https://github.com/OperatorFoundation/Starbridge-go/blob/main/README.md)\n\n- [Shadow README](https://github.com/OperatorFoundation/Shadow-go/blob/main/README.md)\n\n- [Optimizer README](https://github.com/OperatorFoundation/Optimizer-go/blob/main/README.md)\n\n\n#### Frequently Asked Questions\n\n##### What transport should I use in my application?\n\nTry Replicant, Operator's flagship transport which can be tuned for each adversary. Email contact@operatorfoundation.org for a sample config file for the adversary of interest.\nshadow is also a good choice as it works on many networks and is easy to configure.\n\nIf you are an application developer using Pluggable Transports, feel free to reach out to the Operator Foundation for\nhelp in determining which transport might work best for your application. Email contact@operatorfoundation.org.\n\n##### My application is not written in Go. Can I still use the transports?\n\nYes, the Go API is only one way to integrate transports into your application.\nThere is also an interprocess communication (IPC) protocol that allows you to\ncontrol a separate process (called the dispatcher) which provides access to the\ntransports through a proxy interface. When using this method, your application\ncan be written in any language. You just need to implement the IPC protocol so\nthat you can communicate with the dispatcher. The IPC protocol is specified in\nthe [Pluggable Transports 3.0 specification](https://github.com/Pluggable-Transports/Pluggable-Transports-spec/blob/main/releases/PTSpecV3.0/Pluggable%20Transport%20Specification%20v3.0%20-%20Dispatcher%20IPC%20Interface%20v3.0.md) and an implementation of the [dispatcher](https://github.com/OperatorFoundation/shapeshifter-dispatcher) is available which you can bundle with your\napplication.\n\nIn addition, we have native Swift implementations available for those developers looking to integrate transports directly into their iOS, macOS, or Linux applications:\n- [Replicant](https://github.com/OperatorFoundation/ReplicantSwift.git)\n- [Starbridge](https://github.com/OperatorFoundation/Starbridge.git)\n- [Shadow](https://github.com/OperatorFoundation/ShadowSwift.git)\n\n### Credits\n\n * Replicant, Starbridge, Shadow, and Optimizer were developed by [Operator Foundation](https://operatorfoundation.org)\n * [Shadowsocks](https://shadowsocks.org/guide/what-is-shadowsocks.html) was developed by the Shadowsocks team.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperatorfoundation%2Fshapeshifter-transports","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperatorfoundation%2Fshapeshifter-transports","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperatorfoundation%2Fshapeshifter-transports/lists"}