EnglishРусский Map

asciimoth/ygg (форк Yggdrasil)

title
asciimoth/ygg (форк Yggdrasil)
type
entity
summary
Форк yggdrasil-go, разделяющий библиотеку (ygglib) и демон (yggd) и добавляющий стек TCP/IP в userspace для работы внутри процесса
tags
networking, go, fork
created
2026-05-10
updated
2026-05-10
lang
ru
translation_of
asciimoth-ygg
source_updated
2026-05-10
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

asciimoth/ygg - форк yggdrasil-network/yggdrasil-go, появившийся из-за того, что в upstream'е отклонили запросы на новые возможности со словами "не является целью Yggdrasil" (в частности, issue #1060). Заявленная цель форка - использование в виде библиотеки: встраивание yggdrasil-network в другие приложения на Go без обязательного наличия демона.

Что изменилось по сравнению с upstream:

  • Разделение пакета ygglib - ядро, транспорты, адресацию, autopeering и multicast можно импортировать независимо
  • Стек TCP/IP в userspace внутри процесса (vtun) - заменяет системный интерфейс TUN, поэтому для встраивания не требуются root-права или поддержка со стороны ядра
  • Подключаемые несущие сети (carrier networks) - подмена на SOCKS, in-memory loopback или собственные транспорты по шаблону хоста
  • Сопутствующие библиотеки gonnect и gonnect-netstack - переиспользуемые сетевые абстракции

Автор также поддерживает веб-демо (asciimoth.github.io/ygg), запускающее Yggdrasil прямо в браузере через WASM, что служит самым убедительным доводом в пользу усилий по встраиванию.

Статус: активный форк, один maintainer, ветвится от официальной кодовой базы, но имеет существенные расхождения. Динамика отношений с upstream'ом - это классический паттерн "мы хотим X, upstream ответил отказом", порождающий лучшие форки (сравните Vaultwarden и Bitwarden, см. vaultwarden).

Перекрёстные ссылки: yggdrasil-network, yggdrasil-embedded-go.