ZeroTier network virtualization, reimplemented from scratch in Zig (MPL-2.0, derived from ZeroTierOne)
  • Zig 99.3%
  • C++ 0.4%
  • Shell 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-05 18:00:47 +00:00
.githooks chore: scaffold zerotea — build, daemon stub, fuzz harness, CI/CD discipline 2026-07-02 14:43:17 +02:00
docs test: cross-impl wire-oracle KATs (packet header, identity, InetAddress) 2026-07-03 14:01:57 +02:00
packaging chore: scaffold zerotea — build, daemon stub, fuzz harness, CI/CD discipline 2026-07-02 14:43:17 +02:00
scripts test: cross-impl wire-oracle KATs (packet header, identity, InetAddress) 2026-07-03 14:01:57 +02:00
src Merge pull request 'land feat/runtime/networkcontroller (707efa1e18)' (#139) from feat/runtime/networkcontroller into staging 2026-07-03 14:33:44 +00:00
.gitattributes fix(cicd): auto-resolve CHANGELOG land conflicts via .gitattributes merge=union 2026-07-05 12:14:46 +00:00
.gitignore chore: scaffold zerotea — build, daemon stub, fuzz harness, CI/CD discipline 2026-07-02 14:43:17 +02:00
build.zig test(fuzz): guard that the harness aborts on a seeded @panic invariant break (red) 2026-07-03 14:03:17 +02:00
build.zig.zon release: v0.0.15 (auto-cadence) 2026-07-05 18:00:45 +00:00
CHANGELOG.md release: v0.0.15 (auto-cadence) 2026-07-05 18:00:45 +00:00
CLAUDE.md docs: red/green TDD + fast-CI/release cadence (fuzz+ReleaseSafe at release) 2026-07-02 17:54:41 +02:00
CODING_STANDARDS.md chore: scaffold zerotea — build, daemon stub, fuzz harness, CI/CD discipline 2026-07-02 14:43:17 +02:00
LICENSE chore: scaffold zerotea — build, daemon stub, fuzz harness, CI/CD discipline 2026-07-02 14:43:17 +02:00
NOTICE chore: scaffold zerotea — build, daemon stub, fuzz harness, CI/CD discipline 2026-07-02 14:43:17 +02:00
README.md chore: scaffold zerotea — build, daemon stub, fuzz harness, CI/CD discipline 2026-07-02 14:43:17 +02:00

zerotea

A from-scratch Zig implementation of the ZeroTier network-virtualization protocol.

Status: early. Crypto tier in progress. This is a research build. Do not use it for anything real. The daemon runtime does not exist yet; zerotea --version is the only contract so far. Nothing here is "production ready" and no such claim will be made without end-to-end proof.

Why this repo exists

There is an older Zig port of ZeroTier that an LLM grew to 6,817 commits by iterating locally, unvalidated, more or less forever. zerotea is a deliberate counter-experiment: rebuild the same protocol with proper CI/CD as the development method

  • every commit validated in a build pipeline (it never merges red);
  • constant fuzzing of every decoder (property-based, seeded, reproducible);
  • occasional releases gated by wider functional tests.

The old port is used only as a reference oracle — "guardrails and a source of clues." The open question: does disciplined CI/CD produce a measurably different commit-history shape than "let a chatbot chew on it forever"? The comparison is tracked in docs/METHODOLOGY.md.

Not clean-room; MPL-2.0

zerotea is a derivative work of ZeroTierOne (MPL-2.0) and is distributed under the same license (see LICENSE and NOTICE). It is not clean-room — the reference was visible while writing. MPL-2.0 permits derivation, so clean-room is neither claimed nor needed. Crypto test vectors are from public standards.

Build

zig build test          # unit tests (KATs, round-trips)
zig build fuzz -- --budget=30s   # run every decoder's fuzz target for 30s
zig build && zig-out/bin/zerotea --version

Requires Zig ≥ 0.16.0.

Development

This repo rides the seanfarm pipeline: push a feature branch to code.sean.farm/sean/zerotea, let CI validate it, then make land PROJECT=zerotea BRANCH=<x>. See docs/METHODOLOGY.md.