tailscale.com – tailscale.com Index | Files | Directories

package tailscaleroot

import "tailscale.com"

Package tailscaleroot embeds VERSION.txt into the binary.

Index

Variables

var AlpineDockerTag string
var GoToolchainRev string

GoToolchainRev is the git hash from github.com/tailscale/go that this release should be built using. It may end in a newline.

var VersionDotTxt string

VersionDotTxt is the contents of VERSION.txt. Despite the tempting filename, this does not necessarily contain the accurate version number of the build, which depends on the branch type and how it was built. To get version information, use the version package instead.

Source Files

version-embed.go

Directories

PathSynopsis
appcPackage appc implements App Connectors.
appc/appctestPackage appctest contains code to help test App Connectors.
atomicfilePackage atomicfile contains code related to writing to filesystems atomically.
chirpPackage chirp implements a client to communicate with the BIRD Internet Routing Daemon.
client
client/localPackage local contains a Go client for the Tailscale LocalAPI.
client/systrayPackage systray provides a minimal Tailscale systray application.
client/tailscalePackage tailscale contains a Go client for the Tailscale control plane API.
client/tailscale/apitypePackage apitype contains types for the Tailscale LocalAPI and control plane API.
client/tailscale/example
client/tailscale/example/servetlsThe servetls program shows how to run an HTTPS server using a Tailscale cert via LetsEncrypt.
clientupdatePackage clientupdate implements tailscale client update for all supported platforms.
clientupdate/distsignPackage distsign implements signature and validation of arbitrary distributable files.
client/webPackage web provides the Tailscale client for web.
cmd
cmd/addlicenseProgram addlicense adds a license header to a file.
cmd/build-webclientThe build-webclient tool generates the static resources needed for the web client (code at client/web).
cmd/checkmetricscheckmetrics validates that all metrics in the tailscale client-metrics are documented in a given path or URL.
cmd/clonerCloner is a tool to automate the creation of a Clone method.
cmd/cloner/clonerexPackage clonerex is an example package for the cloner tool.
cmd/connector-genconnector-gen is a tool to generate app connector configuration and flags from service provider address data.
cmd/containerbootThe containerboot binary is a wrapper for starting tailscaled in a container.
cmd/derperThe derper binary is a simple DERP server.
cmd/derpprobeThe derpprobe binary probes derpers.
cmd/distThe dist command builds Tailscale release packages for distribution.
cmd/get-authkeyget-authkey allocates an authkey using an OAuth API client https://tailscale.com/s/oauth-clients and prints it to stdout for scripts to capture and use.
cmd/gitops-pusherCommand gitops-pusher allows users to use a GitOps flow for managing Tailscale ACLs.
cmd/helloThe hello binary runs hello.ts.net.
cmd/k8s-nameserverk8s-nameserver is a simple nameserver implementation meant to be used with k8s-operator to allow to resolve magicDNS names associated with tailnet proxies in cluster.
cmd/k8s-operatortailscale-operator provides a way to expose services running in a Kubernetes cluster to your Tailnet.
cmd/k8s-operator/e2e
cmd/k8s-operator/generateThe generate command creates tailscale.com CRDs.
cmd/mkmanifestThe mkmanifest command is a simple helper utility to create a '.syso' file that contains a Windows manifest file.
cmd/mkpkgmkpkg builds the Tailscale rpm and deb packages.
cmd/mkversionmkversion gets version info from git and outputs a bunch of shell variables that get used elsewhere in the build system to embed version numbers into binaries.
cmd/nardumpnardump is like nix-store --dump, but in Go, writing a NAR file (tar-like, but focused on being reproducible) to stdout or to a hash with the --sri flag.
cmd/natcThe natc command is a work-in-progress implementation of a NAT based connector for Tailscale.
cmd/natc/ippoolippool implements IP address storage, creation, and retrieval for cmd/natc
cmd/netlogfmtnetlogfmt parses a stream of JSON log messages from stdin and formats the network traffic logs produced by "tailscale.com/wgengine/netlog" according to the schema in "tailscale.com/types/netlogtype.Message" in a more humanly readable format.
cmd/nginx-authCommand nginx-auth is a tool that allows users to use Tailscale Whois authentication with NGINX as a reverse proxy.
cmd/pgproxyThe pgproxy server is a proxy for the Postgres wire protocol.
cmd/printdepThe printdep command is a build system tool for printing out information about dependencies.
cmd/proxy-to-grafanaproxy-to-grafana is a reverse proxy which identifies users based on their originating Tailscale identity and maps them to corresponding Grafana users, creating them if needed.
cmd/sniproxyThe sniproxy is an outbound SNI proxy.
cmd/speedtestExample usage for client command: go run cmd/speedtest -host 127.0.0.1:20333 -t 5s This will connect to the server on 127.0.0.1:20333 and start a 5 second download speedtest.
cmd/ssh-auth-none-demossh-auth-none-demo is a demo SSH server that's meant to run on the public internet (at 188.166.70.128 port 2222) and highlight the unique parts of the Tailscale SSH server so SSH client authors can hit it easily and fix their SSH clients without needing to set up Tailscale and Tailscale SSH.
cmd/stuncCommand stunc makes a STUN request to a STUN server and prints the result.
cmd/stundThe stund binary is a standalone STUN server.
cmd/stunstampThe stunstamp binary measures round-trip latency with DERPs.
cmd/sync-containersThe sync-containers command synchronizes container image tags from one registry to another.
cmd/systraysystray is a minimal Tailscale systray application.
cmd/tailscaleThe tailscale command is the Tailscale command-line client.
cmd/tailscale/cliPackage cli contains the cmd/tailscale CLI code in a package that can be included in other wrapper binaries such as the Mac and Windows clients.
cmd/tailscale/cli/ffcompletePackage ffcomplete provides shell tab-completion of subcommands, flags and arguments for Go programs written with ffcli.
cmd/tailscale/cli/ffcomplete/internalPackage internal contains internal code for the ffcomplete package.
cmd/tailscaledThe tailscaled program is the Tailscale client daemon.
cmd/tailscaled/childprocPackage childproc allows other packages to register "tailscaled be-child" child process hook code.
cmd/tailscaled/tailscaledhooksPackage tailscaledhooks provides hooks for optional features to add to during init that tailscaled calls at runtime.
cmd/testcontrolProgram testcontrol runs a simple test control server.
cmd/testwrappertestwrapper is a wrapper for retrying flaky tests.
cmd/testwrapper/flakytestPackage flakytest contains test helpers for marking a test as flaky.
cmd/tl-longchainProgram tl-longchain prints commands to re-sign Tailscale nodes that have long rotation signature chains.
cmd/tsconnectThe tsconnect command builds and serves the static site that is generated for the Tailscale Connect JS/WASM client.
cmd/tsidpThe tsidp command is an OpenID Connect Identity Provider server.
cmd/ttaThe tta server is the Tailscale Test Agent.
cmd/viewerViewer is a tool to automate the creation of "view" wrapper types that provide read-only accessor methods to underlying fields.
cmd/viewer/testsPackage tests serves a list of tests for tailscale.com/cmd/viewer.
cmd/vnetThe vnet binary runs a virtual network stack in userspace for qemu instances to connect to and simulate various network conditions.
cmd/xdpderperCommand xdpderper runs the XDP STUN server.
control
control/controlbasePackage controlbase implements the base transport of the Tailscale 2021 control protocol.
control/controlclientPackage controlclient implements the client for the Tailscale control plane.
control/controlhttpPackage controlhttp implements the Tailscale 2021 control protocol base transport over HTTP.
control/controlhttp/controlhttpcommonPackage controlhttpcommon contains common constants for used by the controlhttp client and controlhttpserver packages.
control/controlhttp/controlhttpserverPackage controlhttpserver contains the HTTP server side of the ts2021 control protocol.
control/controlknobsPackage controlknobs contains client options configurable from control which can be turned on or off.
derpPackage derp implements the Designated Encrypted Relay for Packets (DERP) protocol.
derp/derpconstPackage derpconst contains constants used by the DERP client and server.
derp/derphttpPackage derphttp implements DERP-over-HTTP.
derp/xdpPackage xdp contains the XDP STUN program.
derp/xdp/headersThe update program fetches the libbpf headers from the libbpf GitHub repository and writes them to disk.
discoPackage disco contains the discovery message types.
docs
docs/webhooksCommand webhooks provides example consumer code for Tailscale webhooks.
doctorPackage doctor contains more in-depth healthchecks that can be run to aid in diagnosing Tailscale issues.
doctor/ethtoolPackage ethtool provides a doctor.Check that prints diagnostic information obtained from the 'ethtool' utility on the current system.
doctor/permissionsPackage permissions provides a doctor.Check that prints the process permissions for the running process.
doctor/routetablePackage routetable provides a doctor.Check that dumps the current system's route table to the log.
drivePackage drive provides a filesystem that allows sharing folders between Tailscale nodes using WebDAV.
drive/driveimplPackage driveimpl provides an implementation of package drive.
drive/driveimpl/compositedavPackage compositedav provides an http.Handler that composes multiple WebDAV services into a single WebDAV service that presents each of them as its own folder.
drive/driveimpl/dirfsPackage dirfs provides a webdav.FileSystem that looks like a read-only directory containing only subdirectories.
drive/driveimpl/sharedPackage shared contains types and functions shared by different drive packages.
envknobPackage envknob provides access to environment-variable tweakable debug settings.
envknob/featureknobPackage featureknob provides a facility to control whether features can run based on either an envknob or running OS / distro.
envknob/logknobPackage logknob provides a helpful wrapper that allows enabling logging based on either an envknob or other methods of enablement.
featurePackage feature tracks which features are linked into the binary.
feature/capturePackage capture formats packet logging into a debug pcap stream.
feature/capture/dissectorPackage dissector contains the Lua dissector for Tailscale packets.
feature/condregisterThe condregister package registers all conditional features guarded by build tags.
feature/relayserverPackage relayserver registers the relay server feature and implements its associated ipnext.Extension.
feature/taildropPackage taildrop registers the taildrop (file sending) feature.
feature/tapPackage tap registers Tailscale's experimental (demo) Linux TAP (Layer 2) support.
feature/tpmPackage tpm implements support for TPM 2.0 devices.
feature/wakeonlanPackage wakeonlan registers the Wake-on-LAN feature.
healthPackage health is a registry for other packages to report & check overall health status of the node.
health/healthmsgPackage healthmsg contains some constants for health messages.
hostinfoPackage hostinfo answers questions about the host environment that Tailscale is running on.
internal
ipnPackage ipn implements the interactions between the Tailscale cloud control plane and the local network stack.
ipn/auditlogPackage auditlog provides a mechanism for logging audit events.
ipn/conffilePackage conffile contains code to load, manipulate, and access config file settings.
ipn/desktopPackage desktop facilitates interaction with the desktop environment and user sessions.
ipn/ipnauthPackage ipnauth controls access to the LocalAPI.
ipn/ipnextPackage ipnext defines types and interfaces used for extending the core LocalBackend functionality with additional features and services.
ipn/ipnlocalPackage ipnlocal is the heart of the Tailscale node agent that controls all the other misc pieces of the Tailscale node.
ipn/ipnserverPackage ipnserver runs the LocalAPI HTTP server that communicates with the LocalBackend.
ipn/ipnstatePackage ipnstate captures the entire state of the Tailscale network.
ipn/lapitestPackage lapitest provides utilities for black-box testing of LocalAPI (ipnserver).
ipn/localapiPackage localapi contains the HTTP server handlers for tailscaled's API server.
ipn/policyPackage policy contains various policy decisions that need to be shared between the node client & control server.
ipn/storePackage store provides various implementation of ipn.StateStore.
ipn/store/awsstorePackage awsstore contains an ipn.StateStore implementation using AWS SSM.
ipn/store/kubestorePackage kubestore contains an ipn.StateStore implementation using Kubernetes Secrets.
ipn/store/memPackage mem provides an in-memory ipn.StateStore implementation.
jsondbPackage jsondb provides a trivial "database": a Go object saved to disk as JSON.
k8s-operatorPackage kube contains types and utilities for the Tailscale Kubernetes Operator.
k8s-operator/api-proxyPackage apiproxy contains the Kubernetes API Proxy implementation used by k8s-operator and k8s-proxy.
k8s-operator/apisPackage apis contains a constant to name the Tailscale Kubernetes Operator's schema group.
k8s-operator/apis/v1alpha1+kubebuilder:object:generate=true +groupName=tailscale.com
k8s-operator/sessionrecordingPackage sessionrecording contains functionality for recording Kubernetes API server proxy 'kubectl exec' sessions.
k8s-operator/sessionrecording/fakesPackage fakes contains mocks used for testing 'kubectl exec' session recording functionality.
k8s-operator/sessionrecording/spdyPackage spdy contains functionality for parsing SPDY streaming sessions.
k8s-operator/sessionrecording/tsrecorderPackage tsrecorder contains functionality for connecting to a tsrecorder instance.
k8s-operator/sessionrecording/wspackage ws has functionality to parse 'kubectl exec' sessions streamed using WebSocket protocol.
kube
kube/egressservicesPackage egressservices contains shared types for exposing tailnet services to cluster workloads.
kube/ingressservicesPackage ingressservices contains shared types for exposing Kubernetes Services to tailnet.
kube/kubeapiPackage kubeapi contains Kubernetes API types for internal consumption.
kube/kubeclientPackage kubeclient provides a client to interact with Kubernetes.
kube/kubetypesPackage kubetypes contains types and constants related to the Tailscale Kubernetes Operator.
licensesPackage licenses provides utilities for working with open source licenses.
log
log/fileloggerPackage filelogger provides localdisk log writing & rotation, primarily for Windows clients.
logpolicyPackage logpolicy manages the creation or reuse of logtail loggers, caching collection instance state on disk for use on future runs of programs on the same machine.
log/sockstatlogPackage sockstatlog provides a logger for capturing network socket stats for debugging.
logtailPackage logtail sends logs to log.tailscale.com.
logtail/backoffPackage backoff provides a back-off timer type.
logtail/example
logtail/example/logadoptCommand logadopt is a CLI tool to adopt a machine into a logtail collection.
logtail/example/logreprocessThe logreprocess program tails a log and reprocesses it.
logtail/example/logtailThe logtail program logs stdin.
logtail/filchPackage filch is a file system queue that pilfers your stderr.
mathsPackage maths contains additional mathematical functions or structures not found in the standard library.
metricsPackage metrics contains expvar & Prometheus types and code used by Tailscale for monitoring.
net
net/artPackage art provides a routing table that implements the Allotment Routing Table (ART) algorithm by Donald Knuth, as described in the paper by Yoichi Hariguchi.
net/bakedrootsPackage bakedroots contains WebPKI CA roots we bake into the tailscaled binary, lest the system's CA roots be missing them (or entirely empty).
net/captivedetectionPackage captivedetection provides a way to detect if the system is connected to a network that has a captive portal.
net/connstatsPackage connstats maintains statistics about connections flowing through a TUN device (which operate at the IP layer).
net/dnsPackage dns contains code to configure and manage DNS settings.
net/dnscachePackage dnscache contains a minimal DNS cache that makes a bunch of assumptions that are only valid for us.
net/dnsfallbackPackage dnsfallback contains a DNS fallback mechanism for starting up Tailscale when the system DNS is broken or otherwise unavailable.
net/dns/publicdnsPackage publicdns contains mapping and helpers for working with public DNS providers.
net/dns/recursivePackage recursive implements a simple recursive DNS resolver.
net/dns/resolvconffilePackage resolvconffile parses & serializes /etc/resolv.conf-style files.
net/dns/resolverPackage resolver implements a stub DNS resolver that can also serve records out of an internal local zone.
net/flowtrackPackage flowtrack contains types for tracking TCP/UDP flows by 4-tuples.
net/ipsetPackage ipset provides code for creating efficient IP-in-set lookup functions with different implementations depending on the set.
net/ktimeoutPackage ktimeout configures kernel TCP stack timeouts via the provided control functions.
net/memnetPackage memnet implements an in-memory network implementation.
net/netaddrPackage netaddr is a transitional package while we finish migrating from inet.af/netaddr to Go 1.18's net/netip.
net/netcheckPackage netcheck checks the network conditions from the current host.
net/neterrorPackage neterror classifies network errors.
net/netkernelconfPackage netkernelconf contains code for checking kernel netdev config.
net/netknobPackage netknob has Tailscale network knobs.
net/netmonPackage monitor provides facilities for monitoring network interface and route changes.
net/netnsPackage netns contains the common code for using the Go net package in a logical "network namespace" to avoid routing loops where Tailscale-created packets would otherwise loop back through Tailscale routes.
net/netstatPackage netstat returns the local machine's network connection table.
net/netutilPackage netutil contains misc shared networking code & types.
net/netxPackage netx contains types to describe and abstract over how dialing and listening are performed.
net/packetPackage packet contains packet parsing and marshaling utilities.
net/packet/checksumPackage checksum provides functions for updating checksums in parsed packets.
net/pingPackage ping allows sending ICMP echo requests to a host in order to determine network latency.
net/portmapperPackage portmapper is a UDP port mapping client.
net/proxymuxPackage proxymux splits a net.Listener in two, routing SOCKS5 connections to one and HTTP requests to the other.
net/routetablePackage routetable provides functions that operate on the system's route table.
net/socks5Package socks5 is a SOCKS5 server implementation.
net/sockstatsPackage sockstats collects statistics about network sockets used by the Tailscale client.
net/speedtestPackage speedtest contains both server and client code for running speedtests between tailscale nodes.
net/stunPackage STUN generates STUN request packets and parses response packets.
net/stunserverPackage stunserver implements a STUN server.
net/stun/stuntestPackage stuntest provides a STUN test server.
net/tcpinfoPackage tcpinfo provides platform-agnostic accessors to information about a TCP connection (e.g.
net/tlsdialPackage tlsdial generates tls.Config values and does x509 validation of certs.
net/tlsdial/blockblamePackage blockblame blames specific firewall manufacturers for blocking Tailscale, by analyzing the SSL certificate presented when attempting to connect to a remote server.
net/tsaddrPackage tsaddr handles Tailscale-specific IPs and ranges.
net/tsdialPackage tsdial provides a Dialer type that can dial out of tailscaled.
net/tshttpproxyPackage tshttpproxy contains Tailscale additions to httpproxy not available in golang.org/x/net/http/httpproxy.
net/tstunPackage tun creates a tuntap device, working around OS-specific quirks if necessary.
net/udprelayPackage udprelay contains constructs for relaying Disco and WireGuard packets between Tailscale clients over UDP.
net/udprelay/endpointPackage endpoint contains types relating to UDP relay server endpoints.
net/wsconnPackage wsconn contains an adapter type that turns a websocket connection into a net.Conn.
omitPackage omit provides consts to access Tailscale ts_omit_FOO build tags.
packages
packages/debPackage deb extracts metadata from Debian packages.
pathsPackage paths returns platform and user-specific default paths to Tailscale files and directories.
portlistThe portlist package contains code that checks what ports are open and listening on the current machine.
posturePackage posture contains functions to query the local system state for managed posture checks.
proberPackage prober implements a simple blackbox prober.
proxymapPackage proxymap contains a mapping table for ephemeral localhost ports used by tailscaled on behalf of remote Tailscale IPs for proxied connections.
releasePackage release provides functionality for building client releases.
release/distPackage dist is a release artifact builder library.
release/dist/cliPackage cli provides the skeleton of a CLI for building release packages.
release/dist/qnapPackage qnap contains dist Targets for building QNAP Tailscale packages.
release/dist/synologyPackage synology contains dist Targets for building Synology Tailscale packages.
release/dist/unixpkgsPackage unixpkgs contains dist Targets for building unix Tailscale packages.
safesocketPackage safesocket creates either a Unix socket, if possible, or otherwise a localhost TCP connection.
safewebPackage safeweb provides a wrapper around an http.Server that applies basic web application security defenses by default.
sessionrecordingPackage sessionrecording contains session recording utils shared amongst Tailscale SSH and Kubernetes API server proxy session recording.
smallzstdPackage smallzstd produces zstd encoders and decoders optimized for low memory usage, at the expense of compression efficiency.
ssh
ssh/tailsshPackage tailssh is an SSH server integrated into Tailscale.
syncsPackage syncs contains additional sync types and functionality.
tailcfgPackage tailcfg contains types used by the Tailscale protocol with between the node and the coordination server.
tempfork
tempfork/acmePackage acme provides an implementation of the Automatic Certificate Management Environment (ACME) spec, most famously used by Let's Encrypt.
tempfork/gliderlabs
tempfork/gliderlabs/sshPackage ssh wraps the crypto/ssh package with a higher-level API for building SSH servers.
tempfork/heapPackage heap provides heap operations for any type that implements heap.Interface.
tempfork/httprecPackage httprec is a copy of the Go standard library's httptest.ResponseRecorder type, which we want to use in non-test code without pulling in the rest of the httptest package and its test certs, etc.
tempfork/spf13
tempfork/spf13/cobraPackage cobra contains shell scripts and constants copied from https://github.com/spf13/cobra for use in our own shell tab-completion logic.
tempfork/sshtest
tempfork/sshtest/sshPackage ssh implements an SSH client and server.
tkaPackage tka (WIP) implements the Tailnet Key Authority.
tool
tool/gocrossgocross is a wrapper around the `go` tool that invokes `go` from Tailscale's custom toolchain, with the right build parameters injected based on the native+target GOOS/GOARCH.
tsconsensusPackage tsconsensus implements a consensus algorithm for a group of tsnet.Servers
tsconstPackage tsconst exports some constants used elsewhere in the codebase.
tsdPackage tsd (short for "Tailscale Daemon") contains a System type that containing all the subsystems a Tailscale node (tailscaled or platform equivalent) uses.
tsnetPackage tsnet provides Tailscale as a library.
tsnet/example
tsnet/example/tshelloThe tshello server demonstrates how to use Tailscale as a library.
tsnet/example/tsnet-funnelThe tsnet-funnel server demonstrates how to use tsnet with Funnel.
tsnet/example/tsnet-http-clientThe tshello server demonstrates how to use Tailscale as a library.
tsnet/example/web-clientThe web-client command demonstrates serving the Tailscale web client over tsnet.
tstestPackage tstest provides utilities for use in unit tests.
tstest/archtest
tstest/deptestThe deptest package contains a shared implementation of negative dependency tests for other packages, making sure we don't start depending on certain packages.
tstest/integrationPackage integration contains Tailscale integration tests.
tstest/integration/nat
tstest/integration/testcontrolPackage testcontrol contains a minimal control plane server for testing purposes.
tstest/integration/vmsPackage vms does VM-based integration/functional tests by using qemu and a bank of pre-made VM images.
tstest/iosdepsPackage iosdeps is a just a list of the packages we import on iOS, to let us test that our transitive closure of dependencies on iOS doesn't accidentally grow too large, as we've historically been memory constrained there.
tstest/jsdepsPackage jsdeps is a just a list of the packages we import in the JavaScript/WASM build, to let us test that our transitive closure of dependencies doesn't accidentally grow too large, since binary size is more of a concern.
tstest/mtsThe mts ("Multiple Tailscale") command runs multiple tailscaled instances for development, managing their directories and sockets, and lets you easily direct tailscale CLI commands to them.
tstest/natlabPackage natlab lets us simulate different types of networks all in-memory without running VMs or requiring root, etc.
tstest/natlab/vnetPackage vnet simulates a virtual Internet containing a set of networks with various NAT behaviors.
tstest/nettestPackage nettest contains additional test helpers related to network state that can't go into tstest for circular dependency reasons.
tstimePackage tstime defines Tailscale-specific time utilities.
tstime/monoPackage mono provides fast monotonic time.
tstime/ratePackage rate provides a rate limiter.
tswebPackage tsweb contains code used in various Tailscale webservers.
tsweb/promvarzPackage promvarz combines Prometheus metrics exported by our expvar converter (tsweb/varz) with metrics exported by the official Prometheus client.
tsweb/varzPackage varz contains code to export metrics in Prometheus format.
types
types/appctypePackage appcfg contains an experimental configuration structure for "tailscale.com/app-connectors" capmap extensions.
types/boolsPackage bools contains the Int, Compare, and IfElse functions.
types/dnstypePackage dnstype defines types for working with DNS.
types/emptyPackage empty defines an empty struct type.
types/flagtypePackage flagtype defines flag.Value types.
types/ioxPackage iox provides types to implement io functionality.
types/ipprotoPackage ipproto contains IP Protocol constants.
types/jsonxPackage jsonx contains helper types and functionality to use with github.com/go-json-experiment/json, which is positioned to be merged into the Go standard library as encoding/json/v2.
types/keyPackage key contains types for different types of public and private keys used by Tailscale.
types/lazyPackage lazy provides types for lazily initialized values.
types/loggerPackage logger defines a type for writing to logs.
types/logidPackage logid contains ID types for interacting with the log service.
types/mapxPackage mapx contains extra map types and functions.
types/netlogtypePackage netlogtype defines types for network logging.
types/netmapPackage netmap contains the netmap.NetworkMap type.
types/nettypePackage nettype defines an interface that doesn't exist in the Go net package.
types/optPackage opt defines optional types.
types/persistPackage persist contains the Persist type.
types/prefsPackage prefs contains types and functions to work with arbitrary preference hierarchies.
types/prefs/prefs_examplePackage prefs_example contains a Prefs type, which is like tailscale.com/ipn.Prefs, but uses the prefs package to enhance individual preferences with state and metadata.
types/preftypePackage preftype is a leaf package containing types for various preferences.
types/ptrPackage ptr contains the ptr.To function.
types/resultPackage result contains the Of result type, which is either a value or an error.
types/structsPackage structs contains the Incomparable type.
types/tkatypePackage tkatype defines types for working with the tka package.
types/viewsPackage views provides read-only accessors for commonly used value types.
util
util/cachePackage cache contains an interface for a cache around a typed value, and various cache implementations that implement that interface.
util/cibuildPackage cibuild reports runtime CI information.
util/clientmetricPackage clientmetric provides client-side metrics whose values get occasionally logged.
util/cloudenvPackage cloudenv reports which known cloud environment we're running in.
util/cmpverPackage cmpver implements a variant of debian version number comparison.
util/codegenPackage codegen contains shared utilities for generating code.
util/cstructPackage cstruct provides a helper for decoding binary data that is in the form of a padded C structure.
util/ctxkeyctxkey provides type-safe key-value pairs for use with context.Context.
util/deephashPackage deephash hashes a Go value recursively, in a predictable order, without looping.
util/deephash/testtypePackage testtype contains types for testing deephash.
util/dirwalkPackage dirwalk contains code to walk a directory.
util/dnsnamePackage dnsname contains string functions for working with DNS names.
util/eventbusPackage eventbus provides an in-process event bus.
util/eventbus/debug-demodebug-demo is a program that serves a bus's debug interface over HTTP, then generates some fake traffic from a handful of clients.
util/execqueuePackage execqueue implements an ordered asynchronous queue for executing functions.
util/expvarxPackage expvarx provides some extensions to the expvar package.
util/goroutinesThe goroutines package contains utilities for tracking and getting active goroutines.
util/groupmemberPackage groupmember verifies group membership of the provided user on the local system.
util/hashxPackage hashx provides a concrete implementation of hash.Hash that operates on a particular block size.
util/httphdrPackage httphdr implements functionality for parsing and formatting standard HTTP headers.
util/httpmPackage httpm has shorter names for HTTP method constants.
util/jsonutilPackage jsonutil provides utilities to improve JSON performance.
util/limiterPackage limiter provides a keyed token bucket rate limiter.
util/lineiterPackage lineiter iterates over lines in things.
util/linereadPackage lineread reads lines from files.
util/linuxfwPackage linuxfw returns the kind of firewall being used by the kernel.
util/linuxfw/linuxfwtestPackage linuxfwtest contains tests for the linuxfw package.
util/lruPackage lru contains a typed Least-Recently-Used cache.
util/makPackage mak helps make maps.
util/multierrPackage multierr provides a simple multiple-error type.
util/mustPackage must assists in calling functions that must succeed.
util/nocasemapsnocasemaps provides efficient functions to set and get entries in Go maps keyed by a string, where the string is always lower-case.
util/osdiagPackage osdiag provides loggers for OS-specific diagnostic information.
util/osshare
util/osuserPackage osuser implements OS user lookup.
util/pidownerPackage pidowner handles lookups from process ID to its owning user.
util/poolPackage pool contains a generic type for managing a pool of resources; for example, connections to a database, or to a remote service.
util/precompressPackage precompress provides build- and serving-time support for precompressed static resources, to avoid the cost of repeatedly compressing unchanging resources.
util/progresstrackingPackage progresstracking provides wrappers around io.Reader and io.Writer that track progress.
util/quarantinePackage quarantine sets platform specific "quarantine" attributes on files that are received from other hosts.
util/racePackage race contains a helper to "race" two functions, returning the first successful result.
util/racebuildPackage racebuild exports a constant about whether the current binary was built with the race detector.
util/randsPackage rands contains utility functions for randomness.
util/reloadPackage reload contains functions that allow periodically reloading a value (e.g.
util/ringbufferPackage ringbuffer contains a fixed-size concurrency-safe generic ring buffer.
util/setPackage set contains set types.
util/singleflightPackage singleflight provides a duplicate function call suppression mechanism.
util/slicesxPackage slicesx contains some helpful generic slice functions.
util/stringsxPackage stringsx provides additional string manipulation functions that aren't in the standard library's strings package or go4.org/mem.
util/syspolicyPackage syspolicy facilitates retrieval of the current policy settings applied to the device or user and receiving notifications when the policy changes.
util/syspolicy/internalPackage internal contains miscellaneous functions and types that are internal to the syspolicy packages.
util/syspolicy/rsopPackage rsop facilitates source.Store registration via RegisterStore and provides access to the effective policy merged from all registered sources via PolicyFor.
util/syspolicy/settingPackage setting contains types for defining and representing policy settings.
util/syspolicy/sourcePackage source defines interfaces for policy stores, facilitates the creation of policy sources, and provides functionality for reading policy settings from these sources.
util/sysresourcesPackage sysresources provides OS-independent methods of determining the resources available to the current system.
util/systemdPackage systemd contains a minimal wrapper around systemd-notify to enable applications to signal readiness and status to systemd.
util/testenvPackage testenv provides utility functions for tests.
util/topkPackage topk defines a count-min sketch and a cheap probabilistic top-K data structure that uses the count-min sketch to track the top K items in constant memory and O(log(k)) time.
util/truncatePackage truncate provides a utility function for safely truncating UTF-8 strings to a fixed length, respecting multi-byte codepoints.
util/usermetricPackage usermetric provides a container and handler for user-facing metrics.
util/vizerrorPackage vizerror provides types and utility funcs for handling visible errors that are safe to display to end users.
util/winutilPackage winutil contains misc Windows/Win32 helper functions.
util/winutil/authenticode
util/winutil/gp
util/winutil/s4u
util/winutil/winenv
util/zstdframePackage zstdframe provides functionality for encoding and decoding independently compressed zstandard frames.
versionPackage version provides the version that the binary was built at.
version/distroPackage distro reports which distro we're running on.
version/mkversionPackage mkversion gets version info from git and provides a bunch of differently formatted version strings that get used elsewhere in the build system to embed version numbers into binaries.
wgenginePackage wgengine provides the Tailscale WireGuard engine interface.
wgengine/benchCreate two wgengine instances and pass data through them, measuring throughput, latency, and packet loss.
wgengine/filterPackage filter is a stateful packet filter.
wgengine/filter/filtertypePackage filtertype defines the types used by wgengine/filter.
wgengine/magicsockPackage magicsock implements a socket that can change its communication path while in use, actively searching for the best way to communicate.
wgengine/netlogPackage netlog provides a logger that monitors a TUN device and periodically records any traffic into a log stream.
wgengine/netstackPackage netstack wires up gVisor's netstack into Tailscale.
wgengine/netstack/groPackage gro implements GRO for the receive (write) path into gVisor.
wgengine/routerPackage router presents an interface to manipulate the host network stack's state.
wgengine/wgcfgPackage wgcfg has types and a parser for representing WireGuard config.
wgengine/wgcfg/nmcfgPackage nmcfg converts a controlclient.NetMap into a wgcfg config.
wgengine/wgintPackage wgint provides somewhat shady access to wireguard-go internals that don't (yet) have public APIs.
wgengine/wglogPackage wglog contains logging helpers for wireguard-go.
wordsPackage words contains accessors for some nice words.
Version
v1.84.0 (latest)
Published
May 21, 2025
Platform
linux/amd64
Imports
2 packages
Last checked
1 day ago

Tools for package owners.