kaya-go/README.md
2026-03-01 17:29:18 +01:00

141 lines
3.3 KiB
Markdown

# Kaya
![Kaya Dashboard](repo/4fa5ff31-c9d5-4aa5-bea6-97b81f3daf78.png)
[![Build
status](https://github.com/yggdrasil-network/yggdrasil-go/actions/workflows/ci.yml/badge.svg)](https://github.com/yggdrasil-network/yggdrasil-go/actions/workflows/ci.yml)
------------------------------------------------------------------------
## Introduction
Kaya is an enhanced implementation of a fully end-to-end encrypted IPv6
mesh network.
It is lightweight, self-arranging, multi-platform, and allows any
IPv6-capable application to communicate securely with other Kaya nodes.
Kaya does **not** require native IPv6 Internet connectivity --- it works
over IPv4 as well.
This repository extends the baseline behavior with significant
improvements in:
- Observability\
- Runtime control\
- Performance\
- Transport efficiency\
- Operator UX
------------------------------------------------------------------------
## Supported Platforms
- Linux\
- macOS\
- Windows\
- FreeBSD / OpenBSD\
- OpenWrt\
- Ubiquiti EdgeRouter\
- VyOS
------------------------------------------------------------------------
# Building
Requires **Go 1.22 or later**.
``` bash
go build -o kaya ./cmd/yggdrasil
go build -o kayactl ./cmd/yggdrasilctl
```
Cross-compile example:
``` bash
GOOS=windows GOARCH=amd64 go build -o kaya.exe ./cmd/yggdrasil
```
------------------------------------------------------------------------
# Running
## Generate Configuration
``` bash
./kaya -genconf > /path/to/kaya.conf
```
``` bash
./kaya -genconf -json > /path/to/kaya.conf
```
## Start Kaya
``` bash
./kaya -useconffile /path/to/kaya.conf
```
``` bash
./kaya -autoconf
```
Kaya requires permission to create TUN/TAP interfaces.\
On Linux, run under `sudo` or grant `CAP_NET_ADMIN`.
------------------------------------------------------------------------
# Extended Features
## Built-in Operator Dashboard
- Live telemetry (identity, routing, peers, flows, tree)
- Real-time bandwidth visualization
- Peer traffic control
- Optional authentication
- Public read-only mode (`--public-interface`)
## Runtime Control & Hardening
- `--threads`
- `--max-threads`
- `--sandbox` (no-new-privileges, non-dumpable, core dump suppression)
## Enhanced CLI (`kayactl`)
- Improved peer listings
- Clear topology tree
- Integrated traffic control
## Performance & Transport Improvements
- Reduced timer churn
- Optimized peer snapshots
- Faster authorization lookups
- QUIC and TCP dialing improvements
- TLS correctness fixes
------------------------------------------------------------------------
## Practical Outcome
- Better operator visibility\
- Stronger runtime control\
- Lower CPU and memory overhead\
- Safer production deployments
------------------------------------------------------------------------
## Topics / Tags
`go` `golang` `ipv6` `mesh-network` `p2p` `overlay-network`
`encrypted-network`\
`networking` `distributed-systems` `quic` `tcp` `websocket` `linux`\
`freebsd` `openbsd` `macos` `windows` `openwrt`\
`cli` `dashboard` `observability` `performance` `security` `sandbox`\
`rust` `c` `systems-programming` `infrastructure` `devops`
------------------------------------------------------------------------
## License
LGPLv3 with linking exception. See LICENSE for details.