tenon — Copyright (C) 2026 the tenon authors
Licensed under the GNU Affero General Public License v3.0 only (see LICENSE).

This project contains code derived from the following works:

RustDesk (https://github.com/rustdesk/rustdesk, AGPL-3.0)
RustDesk hbb_common (https://github.com/rustdesk/hbb_common, AGPL-3.0)
RustDesk Server (https://github.com/rustdesk/rustdesk-server, AGPL-3.0)
  - crates/rd-proto/protos/message.proto, rendezvous.proto   (verbatim)
  - crates/rd-proto/src/codec.rs                             (bytes_codec.rs)
  - crates/rd-core/src/crypto.rs                             (common.rs / tcp.rs Encrypt, pure-Rust port)
  - crates/rd-core/src/addr.rs                               (AddrMangle)
  - crates/rd-core/src/keys.rs                               (common.rs gen_sk key-file format)
  - crates/rd-core/src/password.rs                           (client.rs handle_hash)
  - crates/rd-rendezvous/                                    (rendezvous_server.rs, peer.rs behaviour)
  - crates/rd-relay/                                         (relay_server.rs behaviour)
  - crates/rd-host/                                          (rustdesk src/rendezvous_mediator.rs, src/server/connection.rs,
                                                              src/server/input_service.rs behaviour)
  Reached tenon via db-kit/rustdesk-bridge by the same author.

Tailscale (https://github.com/tailscale/tailscale, BSD-3-Clause, Copyright (c) Tailscale Inc & contributors)
  - crates/tailcfg/            (subset of tailcfg/tailcfg.go, tailcfg/derpmap.go JSON types)
  - crates/ts2021/             (control/controlbase handshake.go, conn.go, messages.go)
  - crates/coord/              (wire behaviour of control/controlhttp and controlclient/direct.go, map.go)
  - crates/derp/               (derp/derp.go frame protocol, derp_client.go ClientInfo/ServerInfo)
  - crates/control/            (control/controlclient/direct.go client side: register, map stream)
  - crates/wg/                 (derp/derphttp client handshake; wgengine/filter inbound filter semantics)
  These are clean-room Rust re-implementations of the wire protocol following the BSD-3-Clause sources.

boringtun 0.7 (https://github.com/cloudflare/boringtun, BSD-3-Clause, Copyright (c) 2019 Cloudflare, Inc.)
  - used as a library by crates/wg/ (WireGuard Noise handshake and transport)

Pico CSS v2 (https://picocss.com, MIT) — crates/dashboard/assets/pico.min.css
htmx 2 and htmx-ext-sse (https://htmx.org, 0BSD) — crates/dashboard/assets/htmx*.js
Taipei Sans TC Beta 台北黑體 (https://sites.google.com/view/jtfoundry/, Copyright (c) 2019 JT Foundry, SIL OFL 1.1;
  a modified font of Source Han Sans, Copyright 2014-2019 Adobe) — crates/dashboard/assets/fonts/
  (subset to the characters the dashboard uses, WOFF2; license in crates/dashboard/assets/fonts/OFL.txt; tools/fonts.py)

"RustDesk" is a trademark of Purslane Ltd. "Tailscale" is a trademark of Tailscale Inc.
"WireGuard" is a registered trademark of Jason A. Donenfeld. tenon is not affiliated with or endorsed by any of them.
