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 monorepo: CAS-нативна архитектура за хора и coding agents
Как да изградим монорепозитори, който е независим от демони, CAS-нативен и работи върху стандартен Git, използвайки стволови снимки без родители, изолирани работни референции, сливания на дървета в паметта, йерархични файлове OWNERS и синхронизация на огледала с O(delta) сложност.

gosuda.org/zstd: Drop-In съвместимост с DataDog/zstd, компресия със Zero CGO и изолация на сривовете
CGO_ENABLED=0 Go библиотека Zstandard, която изпълнява горния (upstream) 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 KiB и бинарни файлове с SLSA атестация.

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

Schottky: Zero-Allocation, Order-Preserving Byte-Key Encoding за Go
Библиотека на Go без алокации на паметта, която кодира съставни кортежи в байтови ключове, подредени чрез memcmp, с независимо сортиране ASC/DESC, маркери за позициониране на NULL стойности и граници за префиксно сканиране.

Portalite: Лек Go SDK за Portal с мултирелейно свързване и съвместимост със стандартния net.Listener
Лек клиент и CLI за Portal, който поддържа стандартния интерфейс net.Listener на Go, едновременно свързване към множество релета, криптиране от край до край (E2EE) и автоматично възстановяване на сесии.

Go 1.27, или как се научих да престана да се тревожа и да обичам обобщените методи
Generic methods, encoding/json/v2, стандартен пакет uuid и детектор за течове на goroutine, който наистина работи. Обзор на Go 1.27 с примери, всички от които са действително изпълнени.

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

Анализ на рънтайм структурата на управляваните езици и на асемблерния код за AMD64 в Go бинарни файлове
Сравнява се моделът на изпълнение на управлявани и неуправлявани езици и се анализират проверката на стека и структурата на извикванията на функции от рантайма в Go бинарни файлове чрез AMD64 асемблерния код, извлечен с go tool objdump.

Методология за разработка, роден за ИИ: двупосочна циркулация на контекста отвъд използването на инструменти
Сравняваме структурните ограничения на етапите на зависимост от AI в разработката и на простото използване на AI като инструмент и дефинираме AI-нативен процес на разработка, който натрупва намерението на дизайна и организационния контекст в двете посоки.

Portal Tunnel: Разкриване на localhost услуги през децентрализирани публични релейни сървъри
Излагайте локални HTTP услуги към публичния интернет с една единствена команда curl чрез многорелейни, безразрешителни Portal тунели, без регистрация на акаунт или инсталиране на двоичен файл.

Шанъновата граница на капацитета на канала и структура на семантичната комуникация, базирана на изкуствен интелект (Semantic Communication)
Ще разгледаме физическите граници на капацитета на канала, определени от теоремата на Шанън-Хартли, и ще разгледаме семантичната комуникация, при която данните се компресират по смислови единици, а не по битове, чрез споделена база от знания и семантични енкодери/декодери.

Portal: отворен релей с потокова криптография от край до край, който препраща локални услуги към външни мрежи
Той описва архитектурата Portal, която позволява локален сървър да бъде предоставен на външния интернет чрез отворена релейна мрежа с край-до-край криптиране (E2EE), без да е необходима публичен IP адрес или настройка на облачна инфраструктура.

Директни системни извиквания на Linux в чист Go с syscall.Syscall и unsafe.Pointer
Извикване на системни повиквания на ядрото на Linux, като SYS_SYSINFO, директно от чист Go с помощта на структури, съгласувани с ABI, unsafe.Pointer и стандартния пакет syscall, без cgo.

Any не е Any, но Any е Any
Той подробно анализира типа `any` в езика Go и вътрешната структура `EFace`, както и описва методите за динамична обработка на типове с помощта на пакета `reflect` и с type assertions и type switches.

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

Жизнерадостен растерен образ
От концепцията за битмап индекси в базите данни до принципите на работа на Roaring Bitmap и практическото използване на Go. Разглеждаме оптимизацията на битмап структурите за ефективна обработка на мащабни набори от данни.

Политика и компютри
Политиката и компютърните науки, две на пръв поглед различни, но в известен смисъл сходни области, изследват как те могат да решават обществени проблеми и как разработчикът може да се превърне в нов законодател.

Принцип на работа на Go горутините (Goroutine): 2KB променлив стек и M:N планировчик GMP
Обяснява се разликата между конкурентност и паралелизъм, както и 2KB началния променлив стек на горутините, потребителското (user-level) превключване на контекста, GOMAXPROCS и модела на изпълнение на GMP (Goroutine-Machine-Processor) в рамките на времето за изпълнение (runtime) на Go.

Сървъри на бази данни и вградени бази данни: сравнение на архитектурата и характеристиките на I/O
Сравняваме RDBMS, работещи като независими процеси, с вградени бази данни, работещи в същия процес, като SQLite, RocksDB, BadgerDB и PebbleDB, от гледна точка на латентността на I/O операциите при NVMe SSD, изолацията на данните в MSA и структурата на внедряване.

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

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

Пет проектни характеристики на езика Go от гледна точка на системното и бекенд инженерство
Тази статия систематизира философията на дизайна на Go, като се фокусира върху бързата нативна компилация и производителност при изпълнение, стандартната библиотека, функционираща без фреймворки (net/http, database/sql), M:N планировчика на горутини и гаранцията за обратна съвместимост.

Лукса на една чаша зелен чай, която Go рънтаймът ще отнеме: GreenTea GC
Новият GreenTea GC на Go подобрява производителността, като повишава ефективността на събирането на боклук за малки обекти въз основа на памет, организирана в span-и. Разглеждат се проблемите на съществуващия GC и предимствата на GreenTea GC.

Намаляване на забавянето при отговорите за качване на файлове през Go HTTP: реализация на асинхронна работна опашка, базирана на канали
Структурата разделя приемането на временните файлове и изпращането към Incus контейнера в обработчика за качване на файлове в net/http на отделни операции, като използва буферизиран канал и пул от goroutine работници, с цел намаляване на забавянето на отговора на крайната точка.

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

Инжектиране на променливи по време на компилация в Go: използване на go build -ldflags -X
Тази статия разглежда как да се инжектират стойности на низови променливи на Go по време на компилация, без външен .env файл, като се използва линкерният флаг `go build -ldflags "-X"` и се посочва пълният път до символа на пакета.

По-удобна обработка на HTTP грешки + RFC7807
Излизате ли уморени от обработката на грешките в Go API? Опитайте с RFC7807 за по-лесна и ясна обработка.

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

Cilium: историята за една малка промяна в кода, която доведе до изненадващо подобрение в мрежовата стабилност
Разгледайте подробно как една малка промяна в кода на проекта Cilium значително подобри стабилността на управлението на NAT връзки, основано на LRU алгоритъм.

Кратко запознаване с MCP host
Този текст е предназначен да помогне за разбирането на протокола MCP на Anthropic и на MCP хоста (mcphost), реализиран на Go.

Опит за мащабируемо изпълнение на Go сървър в dotnet aspire
Как да изпълняваме Go сървър мащабируемо с .NET Aspire: пример за хоризонтално мащабиране и автоматизирана конфигурация с YARP обратен прокси.

Опит с използването на MLDSA и MLKEM в Go
В Go се разглежда използването на постквантовите криптографски алгоритми MLDSA и MLKEM, като се описват характеристиките на всеки алгоритъм и се предоставят примери за код.

Преглед на Go 1.24: Swiss Table карти, ML-KEM, os.Root и testing/synctest
Техническо предоставяне на Go 1.24: вградени карти на базата на 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 Server

Имплементация на многофайлов визуализатор на изображения с listbox на базата на Go и Tcl/Tk 9.0
Реализираме GUI визуализатор на изображения, който поддържа отваряне на множество файлове с изображения, превключване на избора и изтриване на елементи от списъка, като за целта добавяме обвързвания на Tcl listbox команди и обработчици на виртуални събития към modernc.org/tk9.0.

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

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

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

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

Изграждане на инфраструктура за AI услуги на Go: конкурентност и интеграция на API
Как Go се справя с оркестрацията на API интерфейси за фундаментални модели, конкурентния мрежов вход/изход, потоковите конвейери и разгръщането на услуги, ориентирани към облака.