tailscale 0.2.0

A work-in-progress Tailscale implementation
Documentation
# Examples

This directory contains code examples that use `tailscale-rs` from Rust.

## Requirements

For all the examples, you'll need:
- A working Rust development environment that meets the [MSRV]../README.md#msrv-and-edition
- A [tailnet set up]https://tailscale.com/docs/how-to/quickstart and Tailscale (the Go client)
installed on your local machine
- An [auth key]https://tailscale.com/docs/features/access-control/auth-keys registered for the 
tailnet, referred to as `$AUTH_KEY` below
  - For one-off keys, **do not** follow the "Register a node with the auth key" section! The
examples take care of that for you
- A tailnet policy configured to allow access between your local machine and the example code

Also note the `TS_RS_EXPERIMENT=this_is_unstable_software` environment variable in all the examples
below; for an explanation, see [the Caveats section of the README](../README.md#caveats).

## Overview

Brief descriptions and links to each example.

### [Axum]axum

An `axum`-based HTTP server that serves a simple webpage over the tailnet.

### [Peer Ping]peer_ping

A UDP client that sends "hello" to a tailnet peer on a configurable interval.

### [TCP Echo]tcp_echo

A TCP server that listens on the tailnet and echoes input back to the sender.