|
|
7 lat temu | |
|---|---|---|
| ClientLibrary | 7 lat temu | |
| ConsoleClient | 7 lat temu | |
| MobileLibrary | 7 lat temu | |
| Server | 7 lat temu | |
| contributors | 7 lat temu | |
| psiphon | 7 lat temu | |
| vendor | 7 lat temu | |
| .gitignore | 7 lat temu | |
| .travis.yml | 7 lat temu | |
| CLA-entity.md | 10 lat temu | |
| CLA-individual.md | 10 lat temu | |
| CONTRIBUTING.md | 10 lat temu | |
| LICENSE | 11 lat temu | |
| README.md | 7 lat temu |
Psiphon client and server components implemented in Go. These components provides core tunnel functionality, handling all aspects of evading blocking and relaying traffic through Psiphon. In the client, local proxies provide an interface for routing traffic through the tunnel.
The client component does not include a UI and does not handle capturing or routing local traffic. These major aspects are handled by other parts of Psiphon client applications.
This project is in production and used as the tunneling engine in our Windows and Android clients, which are available at our Psiphon 3 repository.
psiphon package is imported using the absolute path github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon; without further local configuration, go will use this version of the code and not the local copy in the repository.In this repository, run go build in ConsoleClient to make the ConsoleClient binary, a console Psiphon client application.
Build versioning info may be configured as follows, and passed to go build in the -ldflags argument:
BUILDDATE=$(date --iso-8601=seconds)
BUILDREPO=$(git config --get remote.origin.url)
BUILDREV=$(git rev-parse --short HEAD)
GOVERSION=$(go version | perl -ne '/go version (.*?) / && print $1')
DEPENDENCIES=$(echo -n "{" && go list -f '{{range $dep := .Deps}}{{printf "%s\n" $dep}}{{end}}' | xargs go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}' | xargs -I pkg bash -c 'cd $GOPATH/src/pkg && echo -n "\"pkg\":\"$(git rev-parse --short HEAD)\","' | sed 's/,$/}/')
LDFLAGS="\
-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.buildDate=$BUILDDATE \
-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.buildRepo=$BUILDREPO \
-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.buildRev=$BUILDREV \
-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.goVersion=$GOVERSION \
-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.dependencies=$DEPENDENCIES \
"
{
"PropagationChannelId" : "<placeholder>",
"SponsorId" : "<placeholder>",
"LocalHttpProxyPort" : 8080,
"LocalSocksProxyPort" : 1080
}
Note: The lines <!--BEGIN-SAMPLE-CONFIG--> and <--END-SAMPLE-CONFIG--> (visible in the raw Markdown) are used by the config test. Do not remove them.
<placeholder> with a value from your Psiphon server. The Psiphon server-side stack is open source and can be found in our Psiphon 3 repository../ConsoleClient --config psiphon.config where psiphon.config is created as described in the Configure section abovePsiphon Tunnel Core uses:
Please see the LICENSE file.
We maintain a developer mailing list at psiphon3-developers@googlegroups.com. For more information about Psiphon Inc., please visit our web site at www.psiphon.ca.