The easiest, most secure way to use WireGuard and 2FA.
Go to file
David Anderson 9cd4e65191 smallzstd: new package that constructs zstd small encoders/decoders.
It's just a config wrapper that passes "use less memory at the
expense of compression" parameters by default, so that we don't
accidentally construct resource-hungry (de)compressors.

Also includes a benchmark that measures the memory cost of the
small variants vs. the stock variants. The savings are significant
on both compressors (~8x less memory) and decompressors (~1.4x less,
not including the savings from the significantly smaller
window on the compression side - with those savings included it's
more like ~140x smaller).

BenchmarkSmallEncoder-8            	   56174	     19354 ns/op	      31 B/op	       0 allocs/op
BenchmarkSmallEncoderWithBuild-8   	    2900	    382940 ns/op	 1746547 B/op	      36 allocs/op
BenchmarkStockEncoder-8            	   48921	     25761 ns/op	     286 B/op	       0 allocs/op
BenchmarkStockEncoderWithBuild-8   	     426	   2630241 ns/op	13843842 B/op	     124 allocs/op
BenchmarkSmallDecoder-8            	  123814	      9344 ns/op	       0 B/op	       0 allocs/op
BenchmarkSmallDecoderWithBuild-8   	   41547	     27455 ns/op	   27694 B/op	      31 allocs/op
BenchmarkStockDecoder-8            	  129832	      9417 ns/op	       1 B/op	       0 allocs/op
BenchmarkStockDecoderWithBuild-8   	   25561	     51751 ns/op	   39607 B/op	      92 allocs/op

Signed-off-by: David Anderson <danderson@tailscale.com>
2020-07-02 16:13:06 -07:00
.github Rename master -> main. 2020-06-15 13:47:11 -04:00
atomicfile scripts: add a license header checker. 2020-03-17 21:34:44 -07:00
cmd cmd/derper: fix embarassing bug introduced in earlier refactor 2020-06-24 19:45:27 -07:00
control/controlclient control/controlclient: fix copy/paste-o in debug knob accessor 2020-07-02 10:51:23 -07:00
derp derp: add frameClosePeer to move around clients within a region 2020-06-25 09:33:10 -07:00
disco disco: simplify expression, appease staticcheck 2020-07-02 10:52:23 -07:00
internal/deepprint internal/deepprint: update copyright header to appease license checker script 2020-06-29 22:22:44 -07:00
ipn smallzstd: new package that constructs zstd small encoders/decoders. 2020-07-02 16:13:06 -07:00
log/logheap log/logheap: appease staticcheck 2020-06-12 10:31:42 -07:00
logpolicy smallzstd: new package that constructs zstd small encoders/decoders. 2020-07-02 16:13:06 -07:00
logtail logtail: we missed a case for the backoff timer. 2020-06-05 03:55:45 -04:00
metrics metrics: add a LabelMap type for variables with 1 label dimension. 2020-03-04 13:22:50 -08:00
net net/netcheck, wgengine/magicsock: replace more UDPAddr with netaddr.IPPort 2020-06-30 13:25:13 -07:00
paths paths: use /var/db for state on BSDs, and /var/run for sockets. 2020-03-03 17:49:31 -08:00
portlist portlist: set SysProcAttr.HideWindow on Windows 2020-06-08 09:04:31 -07:00
safesocket safesocket: gofmt 2020-03-30 11:23:18 -07:00
scripts wgengine/router: split out from wgengine. 2020-04-30 13:31:24 -07:00
smallzstd smallzstd: new package that constructs zstd small encoders/decoders. 2020-07-02 16:13:06 -07:00
syncs syncs: add AtomicBool 2020-05-29 12:41:30 -07:00
tailcfg wgengine/magicsock: clean up discovery logging 2020-07-02 10:48:13 -07:00
tempfork tempfork/registry: work around issue with Tailscale's redo build system 2020-06-05 10:46:15 -07:00
tstest tstest/natlab: remove unused PacketConner type 2020-07-02 14:50:04 -07:00
tstime tstime: hand-implement parseInt for specific needs of rfc3339 parsing. 2020-04-14 12:36:55 -07:00
tsweb tsweb: JSONHandler: supports HTTPError 2020-06-09 17:40:45 -04:00
types types/opt: add Bool.EqualBool method 2020-06-25 19:14:24 -07:00
version version: add support for setting version with the -X Go linker flag 2020-06-22 12:59:38 -07:00
wgengine wgengine/magicsock: log less on no-op disco route switches 2020-07-02 11:39:05 -07:00
.gitattributes .gitattributes: add a smudge filter for go.mod. 2020-02-19 20:02:02 -05:00
.gitignore cmd/relaynode: drop local --acl-file in favour of central packet filter. 2020-02-20 00:15:43 -05:00
AUTHORS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
CODE_OF_CONDUCT.md Add a code of conduct. 2020-02-10 22:16:30 -08:00
Dockerfile Dockerfile: install iproute2 in the container image. 2020-05-10 17:12:17 -07:00
go.mod smallzstd: new package that constructs zstd small encoders/decoders. 2020-07-02 16:13:06 -07:00
go.sum smallzstd: new package that constructs zstd small encoders/decoders. 2020-07-02 16:13:06 -07:00
LICENSE Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
Makefile Fix staticcheck warning, add Makefile with staticcheck targets, lock in staticcheck version in go.mod 2020-06-15 11:05:46 -07:00
PATENTS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
README.md Dockerfile: add some usage docs, bump to Go 1.14 2020-04-06 07:57:47 -07:00
SECURITY.md Add a SECURITY.md for vulnerability reports. 2020-02-11 10:26:41 -08:00

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains all the open source Tailscale code. It currently includes the Linux client.

The Linux client is currently cmd/relaynode, but will soon be replaced by cmd/tailscaled.

Using

We serve packages for a variety of distros at https://pkgs.tailscale.com .

Building

go install tailscale.com/cmd/tailscale{,d}

We only guarantee to support the latest Go release and any Go beta or release candidate builds (currently Go 1.14) in module mode. It might work in earlier Go versions or in GOPATH mode, but we're making no effort to keep those working.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

under_construction.gif

PRs welcome, but we are still working out our contribution process and tooling.

We require Developer Certificate of Origin Signed-off-by lines in commits.

About Us

We are apenwarr, bradfitz, crawshaw, danderson, dfcarney, from Tailscale Inc. You can learn more about us from our website.

WireGuard is a registered trademark of Jason A. Donenfeld.