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.