tailscale library

Classes

ClientVersion
An available client-version update (result of Diag.checkUpdate).
DERPMap
Current DERP relay map — the set of regions and nodes Tailscale will route through when a direct node-to-node path isn't available. Mirrors tailcfg.DERPMap. See tailscale.com/kb/1232/derp-servers.
DERPNode
DERPRegion
Diag
Observability and diagnostics. All read-only; nothing here affects connectivity.
ExitNode
Exit-node routing: route this node's internet-bound traffic through another tailnet node, VPN-style. The exit node becomes the last hop before the public internet, so outbound connections appear to originate from its IP.
FileTarget
A node eligible to receive files via Taildrop.
Funnel
Public-internet publication for an existing local HTTP service.
Http
HTTP-specific conveniences routed through the embedded tailnet node.
LoginProfile
A saved login profile — one per account/tailnet stored on this node.
PingResult
Result of a Diag.ping.
Prefs
Low-level escape hatch for preferences that don't have a dedicated namespace — subnet routes, Shields Up, auto-update opt-in, tags, etc.
PrefsUpdate
A multi-field atomic update to TailscalePrefs. Only fields set on this object are modified; unset fields are left alone.
Profiles
Multi-account / multi-tailnet support: one node with several saved login profiles. Switching changes which tailnet this node is a member of without re-authenticating from scratch. Useful for a single app that needs to operate in both a personal and a work tailnet, or dev vs prod.
Serve
Tailnet publication for an existing local HTTP service.
Taildrop
Node-to-node file transfer ("Taildrop") over the tailnet. Sends travel directly between nodes with no third-party service in the middle — good fit for mobile-to-desktop sync, collab tools, and anywhere you'd otherwise set up a file server.
Tailscale
Singleton embedded Tailscale node for the current Dart process. Wraps Tailscale's tsnet userspace library — the Dart app itself becomes a node on the tailnet, no OS-level VPN required.
TailscaleClient
Testable app-facing contract for an embedded Tailscale node.
TailscaleConnection
One full-duplex byte stream over the tailnet.
TailscaleConnectionOutput
Write half of a TailscaleConnection.
TailscaleDatagram
One UDP datagram received over the tailnet.
TailscaleDatagramBinding
UDP datagram binding over the tailnet.
TailscaleEndpoint
A tailnet endpoint attached to a transport object.
TailscaleHttpRequest
One inbound HTTP request accepted from the tailnet.
TailscaleHttpResponse
Writable response half for a TailscaleHttpRequest.
TailscaleHttpServer
A live tailnet HTTP server.
TailscaleListener
Tailnet TCP listener.
TailscaleNode
A node this node can see on the tailnet, including offline nodes.
TailscaleNodeIdentity
Identity of a tailnet node — the result of Tailscale.whois.
TailscalePrefs
Node preferences. Mirrors a subset of ipn.Prefs on the Go side.
TailscalePublishedService
A Serve or Funnel publication that forwards inbound traffic to a local loopback HTTP service.
TailscaleRuntimeError
Asynchronous background error pushed from the embedded runtime.
TailscaleStatus
A snapshot of the local node's current state.
Tcp
Raw TCP primitives between tailnet nodes.
Tls
TLS-terminated listener for this node, with a cert auto-provisioned by Tailscale for this tailnet.
Udp
UDP datagram sockets over the tailnet.
WaitingFile
A file that arrived via Taildrop and is waiting to be read or deleted.

Enums

NodeState
The node's position in the connection lifecycle. Mirrors Go's ipn.State.
PingPath
How confidently Diag.ping could classify the route to the node.
PingType
Path type for Diag.ping. Matches ipnstate.PingType.
TailscaleErrorCode
Structured category for operation failures.
TailscaleLogLevel
Native log verbosity for the embedded Tailscale runtime — controls what the Go side writes to stderr. Dart-side logging (e.g. TailscaleRuntimeError) is unaffected.
TailscaleRuntimeErrorCode
High-level category for asynchronous runtime errors pushed from Go.

Constants

tailscaleMaxDatagramPayloadBytes → const int
Maximum public UDP payload accepted by the v1 package-native transport.

Typedefs

HttpBindFn = Future<({int bindingId, TailscaleEndpoint tailnet})> Function(int port)
HttpCloseBindingFn = Future<void> Function(int bindingId)
UdpDefaultAddressFn = Future<String?> Function()

Exceptions / Errors

TailscaleDiagException
Thrown when a diag.* call fails.
TailscaleException
Stable library-level exception base for embedded Tailscale operations.
TailscaleExitNodeException
Thrown when an exitNode.* call fails.
TailscaleFunnelException
Thrown when a funnel.* call fails — most notably missing Funnel policy, unsupported public ports, or tailnet HTTPS preconditions.
TailscaleHttpException
Thrown when an http.* call fails — notably http.bind() failing to forward tailnet traffic, or http.client accessed before up().
TailscaleLogoutException
Thrown when logout() fails to clear persisted state.
TailscaleOperationException
Base class for operation-specific failures such as up() or listen().
TailscalePrefsException
Thrown when a prefs.* call fails.
TailscaleProfilesException
Thrown when a profiles.* call fails.
TailscaleServeException
Thrown when a serve.* call fails — most notably a conflicting Serve config write or unsupported tailnet publication.
TailscaleStatusException
Thrown when status() fails to decode or fetch native status.
TailscaleTaildropException
Thrown when a taildrop.* call fails.
TailscaleTcpException
Thrown when a tcp.* call fails — tailnet dial refused, no route to node, fd handoff failure, etc.
TailscaleTlsException
Thrown when a tls.* call fails — certificate-domain discovery, TLS listener setup, or tailnet HTTPS precondition failures.
TailscaleUdpException
Thrown when a udp.* call fails — tailnet bind failure, invalid endpoint, oversize datagram, fd handoff failure, etc.
TailscaleUpException
Thrown when up() fails before the node reaches a stable state.
TailscaleUsageException
Thrown when the API is used in an invalid lifecycle state.