We build fast, honest Go tools in the open: networking, storage, runtimes and developer tooling. Your next commit belongs here.

- Repositories
- 103
- GitHub stars
- 723
- Articles
- 42
- Languages
- 23
Join in three steps
No sign-up. Everything happens on GitHub.
Pick a project
Find a repository that matches what you love to build, from relays to databases.
GoOpen an issue or PR
Report a bug, propose an idea or send a fix. Small pull requests are welcome.
GoWrite for the blog
Share what you learned. Every post is translated into 20+ languages automatically.
GoProjects looking for you
Our most starred repositories. Pick one and say hi.
Publishes localhost services to the agentic web through self-hostable, trustless relays.
Human and machine friendly speedy open source coding harness. Our defaults. Your agent. dal is a minimal, pluggable coding agent; dalgona adds opinionated batteries. Make either yours with Starlark plugins, written by you or your agent.
Independent bitcoin full node in Rust
sites/artifacts alternative
Randflake ID: a distributed, uniform, unpredictable, unique random ID generator.
Golang implementation of an x402 payment facilitator
From the blog
Deep dives written by GoSuda members.

Переосмысление монорепозитория Git: архитектура на основе CAS для людей и программных агентов для кодирования
Как построить монорепозиторий без демонов, с нативной поддержкой CAS, на основе стандартного Git, используя бесродительские снимки транка, изолированные ссылки на рабочие пространства, деревья слияния в памяти, иерархические файлы OWNERS и синхронизацию зеркал со сложностью O(delta).

gosuda.org/zstd: Совместимая замена DataDog/zstd с сжатием без CGO и изоляцией сбоев
CGO_ENABLED=0 Go-библиотека Zstandard, которая запускает вышестоящую C-библиотеку libzstd 1.5.7 в рабочем процессе с общей памятью, с API, совместимым с DataDog/zstd, повторно используемыми контекстами и пакетной обработкой данных.

gosuda.org/sqlite3: CGO_ENABLED=0 database/sql Driver поверх Shared-Memory IPC
Драйвер SQLite 3.54.1 для Go, совместимый с database/sql, с CGO_ENABLED=0, изоляцией рабочих процессов через разделяемую память HQQ, предварительной выборкой строк пакетами по 64 КиБ и бинарными файлами с аттестацией SLSA.

HQQ: изоляция библиотек на C от Go посредством разделяемой памяти на уровне строк кэша
Среда выполнения IPC без cgo, компилятор IDL (hqq-bindgen) и верифицированный супервизор процессов, которые выполняют нативные библиотеки C11 в изолированных рабочих процессах через кольцевые буферы в разделяемой памяти.

Schottky: кодирование байтовых ключей для Go без аллокаций с сохранением порядка
Библиотека Go без аллокаций, которая кодирует составные кортежи в байтовые ключи, упорядочиваемые по memcmp, с независимой сортировкой ASC/DESC, метками размещения NULL и границами префиксного сканирования.

Portalite: легковесный Go SDK для Portal с привязкой к нескольким ретрансляторам и поддержкой стандартного net.Listener
Облегчённый клиент и CLI для Portal, совместимый с стандартным интерфейсом net.Listener из Go, поддерживающий одновременную привязку к нескольким ретрансляторам, сквозное шифрование (E2EE) и автоматическое восстановление сеанса.

Go 1.27, или Как я научился не волноваться и полюбить обобщённые методы
Обобщённые методы, encoding/json/v2, стандартный пакет uuid и детектор утечек горутин, который действительно работает. Обзор Go 1.27 с примерами, все из которых были фактически запущены.

Анализ генерации ассемблерного кода AMD64 для условного оператора (if) в Go и инструкций ветвления
Сравнивается процесс, в ходе которого компилятор Go преобразует условные конструкции if-else в инструкции ветвления машинного кода AMD64, такие как CMPQ, JGE и JMP, с результатом генерации кода ветвлений компилятором C (-O2).

Анализ структуры времени выполнения управляемых языков и ассемблерного кода AMD64 в бинарных файлах Go
Сравнивается модель выполнения управляемых (managed) и неуправляемых (unmanaged) языков, а также с помощью AMD64-ассемблера, извлечённого командой go tool objdump, анализируются проверка стека и структура вызовов функций среды выполнения в бинарных файлах Go.

Нативная для ИИ методология разработки: двунаправленная циркуляция контекста, выходящая за рамки использования инструментов
Сопоставляются структурные ограничения режима зависимости от ИИ и этапа простого использования ИИ как инструмента, а также определяется AI-нативный процесс разработки, в котором проектное намерение и организационный контекст накапливаются в двустороннем режиме.

Portal Tunnel: открытие локальных сервисов через децентрализованные публичные ретрансляторы
Открывайте локальные HTTP-сервисы для публичного доступа в интернет одной командой curl через многоретрансляционные туннели Portal без учетных записей и установки двоичных файлов.

Предел пропускной способности канала Шеннона и структура семантической связи (Semantic Communication) на основе ИИ
Рассмотрим физические пределы пропускной способности канала, установленные теоремой Шеннона–Хартли, и обсудим семантическую коммуникацию, в которой данные сжимаются не в битовых единицах, а в единицах смысла с помощью общей базы знаний и семантических кодера и декодера.

Portal: открытый ретрансляционный сервис со сквозным шифрованием, передающий локальные сервисы во внешнюю сеть
В этом документе описывается архитектура Portal, которая позволяет открыть локальный сервер во внешнем интернете без статического публичного IP-адреса и настройки облачной инфраструктуры, используя открытую сеть ретрансляции с сквозным шифрованием (E2EE).

Прямые системные вызовы Linux на чистом Go с помощью syscall.Syscall и unsafe.Pointer
Вызов системных вызовов ядра Linux, таких как SYS_SYSINFO, напрямую из чистого Go с использованием структур, выровненных по ABI, unsafe.Pointer и стандартного пакета syscall без cgo.

Any не есть Any, но Any есть Any
Выполняется подробный анализ типа `any` языка Go и его внутренней структуры `EFace`, а также описываются способы динамической обработки типов с использованием пакета `reflect` и утверждений о типе и switch по типу.

Структура реализации FIPS 140-2 и FIPS 140-3 в стандартной криптографической библиотеке Go
Анализируются ограничения интеграции с внешним провайдером C OpenSSL и рассматриваются: BoringCrypto (FIPS 140-2), режим FIPS 140-3 в нативном стандартном пакете crypto языка Go, проверка Fail-Fast, Hedged ECDSA и структура DRBG.

Яркое растровое изображение
От концепции битмап-индексов в базах данных до принципов работы Roaring Bitmap и практического применения на языке Go. Рассматриваются методы оптимизации битовых карт для эффективной обработки больших наборов данных.

Политика и компьютеры
Политика и информатика, две на первый взгляд различные, но в чём-то схожие области, рассматриваются здесь с точки зрения того, как они совместно способствуют решению общественных проблем и как разработчик может становиться новым законодателем.

Принцип работы горутин (Goroutine) в Go: переменный стек размером 2 КБ и планировщик GMP с моделью M:N
Рассматриваются различия между конкурентностью и параллелизмом, начиная с 2 КБ начального растущего стека горутин, переключения контекста на уровне пользователя, GOMAXPROCS и модели планирования выполнения в рантайме GMP (Goroutine-Machine-Processor).

Серверные системы управления базами данных и встраиваемые базы данных: сравнение архитектуры и характеристик ввода-вывода
Сравниваются独立 процессные RDBMS и встраиваемые (in-process) базы данных, такие как SQLite, RocksDB, BadgerDB и PebbleDB, с точки зрения задержки I/O на NVMe SSD, изоляции данных в MSA и структуры развертывания.

Структура конфигурации встроенного сервера NATS в приложении на Go и механизм межпроцессного взаимодействия в пределах одного процесса
В данном материале рассматриваются способ конфигурации и запуска брокера NATS (nats-server/v2), встроенного в процесс Go, а также проектирование внутриprocessной коммуникации в памяти на основе InProcessConn и интерфейса, определяемого потребителем.

Интерфейсы Go и встраивание структур: различия с наследованием классов и проектирование на основе композиции
Сравнивается различие между наследованием классов в Java/C++ и структурной типизацией интерфейсов в Go, а также с помощью примеров кода поясняется паттерн композиции (Composition) с использованием встраивания структур и делегирования методов.

5 проектных особенностей языка Go с точки зрения системного и backend-инжиниринга
Быстрая нативная компиляция и производительность выполнения, стандартная библиотека, работающая без фреймворков (net/http, database/sql), планировщик горутин M:N и гарантии обратной совместимости: на этих аспектах сосредоточено изложение философии проектирования Go.

Возможность выпить чашку зелёного чая, которую у нас отнимет среда выполнения Go: GreenTea GC
Новый сборщик мусора GreenTea в Go повышает производительность за счет повышения эффективности сборки мусора для мелких объектов на основе областей памяти (memory spans). Рассматриваются проблемы существующего сборщика мусора и преимущества GreenTea GC.

Сокращение задержки ответа при загрузке файлов по HTTP в Go: реализация асинхронной очереди воркеров на основе каналов
Данная структура разделяет в обработчике загрузки файлов net/http приём временного файла и передачу в контейнер Incus на буферизованный канал и пул рабочих горутин, что позволяет сократить задержку ответа конечной точки.

Анализ изменений в поведении encoding/json/v2 в Go 1.25 и слоя совместимости с v1
Сравниваются сопоставление с учётом регистра, изменение семантики omitempty и omitzero, сериализация nil-срезов и nil-отображений, а также параметры encoding/json/v2, введённого как экспериментальная функция Go 1.25 (goexperiment.jsonv2).

Внедрение переменных на этапе компиляции в Go: использование go build -ldflags -X
Рассматривается способ внедрения значений строковых переменных Go на этапе компиляции без использования внешнего файла .env, с помощью флага компоновщика go build -ldflags "-X" и указания пути к символу пакета.

Более удобная обработка HTTP-ошибок + RFC7807
Надоело возиться с обработкой ошибок в Go API? Попробуйте RFC 7807: это более простой и понятный способ.

Сравнение языковых дизайнов в среде генерации кода с помощью LLM: стоимость абстракции и явность Go
Анализируются причины, по которым объектно-ориентированный полиморфизм, синтаксический сахар и сложные деревья модулей повышают стоимость вывода контекста для LLM, а также рассматривается, почему Go с его явным потоком управления и простым синтаксисом более удобен для генерации кода с помощью ИИ.

Cilium: история о том, как небольшое изменение кода привело к значительному повышению стабильности сети
Подробно рассматривается, каким образом небольшое изменение кода в проекте Cilium существенно повысило надежность управления NAT-соединениями на основе LRU.

Немного о понимании MCP host
Статья призвана способствовать пониманию протокола MCP от Anthropic и MCP-хоста (mcphost), реализованного на Go.

Запуск масштабируемого Go-сервера в .NET Aspire
Как масштабируемо запускать Go-серверы с помощью .NET Aspire: пример горизонтального масштабирования и автоматизированной конфигурации с обратным прокси-сервером YARP.

Опыт использования MLDSA и MLKEM в языке Go
В этом материале рассматривается использование постквантовых криптографических алгоритмов MLDSA и MLKEM в языке Go, описываются особенности каждого алгоритма и приводятся примеры кода.

Обзор релиза Go 1.24: таблицы Swiss Table для отображений, ML-KEM, os.Root и testing/synctest
Технический обзор Go 1.24: встроенные map на основе Swiss Table, crypto/mlkem (FIPS 203), TLS Encrypted Client Hello, runtime.AddCleanup, os.Root и testing/synctest.

Randflake ID: распределённая генерация 64-битных уникальных идентификаторов с помощью блочного шифра Sparx64
Распределённый генератор уникальных 64-битных идентификаторов, объединяющий 30-битную метку времени, 17-битный идентификатор узла, 17-битный локальный счётчик и блочный шифр Sparx64 ARX для получения непредсказуемых идентификаторов.

Повышение отзывчивости с помощью клиентского кэша Redis
Повышение отзывчивости API с использованием клиентского кэша с поддержкой сервера Redis

Реализация просмотрщика изображений на основе многофайлового списка (listbox) с использованием Go и Tcl/Tk 9.0
Для реализации графического просмотрщика изображений, поддерживающего открытие нескольких файлов изображений, переключение выбора и удаление элементов списка, в modernc.org/tk9.0 добавляются привязки команд Tcl listbox и обработчики виртуальных событий.

Реализация GUI на Go Tcl/Tk (modernc.org/tk9.0) без CGo: упаковка виджетов и рендеринг изображений
Реализация создания окон, упаковки виджетов кнопок и строки меню, а также рендеринга изображений SVG/PNG/ICO на Go с использованием кроссплатформенной библиотеки modernc.org/tk9.0, не имеющей зависимостей от CGo.

Go и экосистема OpenAPI
Представляем библиотеки и стратегии, которые можно использовать при разработке API на основе OpenAPI на языке Go.

Стартовый набор по конкурентности в Go
Представляем различные инструменты и методы управления конкурентностью в Go, включая горутины, каналы, мьютексы и другие.

Причины, по которым Go выбрал явный возврат ошибок и механизм panic-recover вместо генерации исключений try-catch
Рассматриваются ограничения конструкции try-catch, которая переносит ответственность за обработку исключений вдоль стека вызовов, и описывается подход Go к panic-recover, применяемый исключительно к неустранимым состояниям, в сочетании с явной обработкой error в точках вызова.

Построение инфраструктуры AI-сервисов на Go: конкурентность и интеграция API
Как Go обеспечивает оркестрацию API базовых моделей, параллельный сетевой ввод-вывод, потоковые конвейеры и развёртывание сервисов в облачной среде.