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.

Przemyślenie monorepozytorium Git: architektura natywna dla CAS dla ludzi i agentów kodujących
Jak zbudować monorepo bez demona, natywne dla CAS, na standardowym Git, wykorzystując parentless trunk snapshots, izolowane referencje przestrzeni roboczych, drzewa scalania w pamięci, hierarchiczne pliki OWNERS oraz synchronizację mirror o złożoności O(delta)?

gosuda.org/zstd: Zamiennik DataDog/zstd z kompresją bez CGO i izolacją awarii
CGO_ENABLED=0 biblioteka Go Zstandard uruchamiająca upstreamową bibliotekę C libzstd 1.5.7 w procesie roboczym ze wspólną pamięcią, z API zgodnym z DataDog/zstd, wielokrotnie wykorzystywanymi kontekstami oraz grupowym przetwarzaniem wsadowym.

gosuda.org/sqlite3: sterownik database/sql z CGO_ENABLED=0 oparty na Shared-Memory IPC
Sterownik SQLite 3.54.1 dla Go zgodny z database/sql, z możliwością bezpośredniego zastąpienia, działający przy CGO_ENABLED=0, z izolacją workerów opartą na pamięci współdzielonej HQQ, pobieraniem wierszy wsadowo w porcjach po 64 KiB oraz plikami binarnymi poświadczonymi certyfikatem SLSA.

HQQ: Izolowanie bibliotek C od Go za pomocą pamięci współdzielonej w obrębie linii pamięci podręcznej
Środowisko uruchomieniowe IPC bez cgo, kompilator IDL (hqq-bindgen) oraz zweryfikowany nadzorca procesów, które wykonują natywne biblioteki C11 w izolowanych procesach roboczych za pośrednictwem pierścieni w pamięci dzielonej.

Schottky: Zero-Allocation, Order-Preserving Byte-Key Encoding for Go
Biblioteka w języku Go, nieprzydzielająca pamięci (zero-allocation), która koduje złożone krotki w bajtowe klucze uporządkowane zgodnie z memcmp, z niezależnym sortowaniem ASC/DESC, znacznikami określającymi położenie wartości NULL oraz granicami skanowania prefiksów.

Portalite: lekki Portal Go SDK oparty na wielorelayowym wiązaniu i standardowym net.Listener
Lekki klient Portal oraz interfejs CLI, który obsługuje zgodny ze standardowym interfejsem net.Listener w języku Go, jednoczesne wiązanie z wieloma przekaźnikami (relay), szyfrowanie端到端 (E2EE) oraz automatyczne odzyskiwanie sesji.

Go 1.27, czyli jak przestałem się martwić i pokochałem metody generyczne
Metody generyczne, encoding/json/v2, standardowy pakiet uuid oraz detektor wycieków goroutine, który faktycznie działa. Przegląd Go 1.27 z przykładami, które wszystkie zostały rzeczywiście uruchomione.

Analiza generowania kodu asemblerowego AMD64 dla instrukcji warunkowej if w języku Go oraz instrukcji rozgałęzień
Porównujemy proces, w którym kompilator Go tłumaczy instrukcje warunkowe if-else na instrukcje rozgałęzień maszyny AMD64, takie jak CMPQ, JGE i JMP, z wynikiem generowania kodu rozgałęzień przez kompilator C (-O2).

Analiza struktury runtime języków zarządzanych oraz assembly AMD64 w plikach binarnych Go
Porównujemy modele wykonania języków zarządzanych (managed) i niezarządzanych (unmanaged) oraz analizujemy strukturę sprawdzania stosu i wywołań funkcji runtime w plikach binarnych Go na podstawie assembly AMD64 wyodrębnionego za pomocą go tool objdump.

Metodologia rozwoju AI-native: dwukierunkowa cyrkulacja kontekstu wykraczająca poza wykorzystanie narzędzi
Porównujemy strukturalne ograniczenia etapów polegania na AI oraz prostego wykorzystania narzędzi, a następnie definiujemy proces rozwoju AI-native, który w obie strony gromadzi intencje projektowe i kontekst organizacyjny.

Portal Tunnel: udostępnianie usług localhost za pośrednictwem zdecentralizowanych publicznych przekaźników
Udostępniaj lokalne usługi HTTP publicznemu Internetowi za pomocą jednego polecenia curl, korzystając z wieloprzekaźnikowych, bezpozwoleniowych tuneli Portal, bez konieta kont i bez instalowania plików binarnych.

Granice pojemności kanału Shannona a struktura komunikacji semantycznej (Semantic Communication) opartej na sztucznej inteligencji
Omawiamy fizyczne granice pojemności kanału wynikające z twierdzenia Shannona-Hartleya oraz zajmujemy się komunikacją semantyczną, w której dane przesyłane są w jednostkach znaczenia, a nie pojedynczych bitów, dzięki współdzielonej bazie wiedzy oraz semantycznym koderom i dekoderom.

Portal: otwarty przekaźnik z szyfrowaniem end-to-end, pośredniczący między usługami lokalnymi a siecią zewnętrzną
Niniejszy dokument opisuje architekturę Portal, która udostępnia lokalny serwer w zewnętrznym Internecie za pośrednictwem otwartej sieci przekaźników z szyfrowaniem end-to-end (E2EE), bez konieczności posiadania publicznego adresu IP ani konfiguracji infrastruktury chmurowej.

Bezpośrednie wywołania systemowe Linuksa w czystym Go z użyciem syscall.Syscall i unsafe.Pointer
Wywoływanie wywołań systemowych jądra Linux, takich jak SYS_SYSINFO, bezpośrednio z czystego kodu Go, z wykorzystaniem struktur zgodnych z ABI, unsafe.Pointer oraz standardowego pakietu syscall, bez cgo.

Any nie jest Any, ale Any jest Any
Szczegółowo analizujemy typ `any` języka Go oraz jego wewnętrzną strukturę `EFace`, a także wyjaśniamy metody dynamicznej obsługi typów z wykorzystaniem pakietu `reflect` oraz asercji i instrukcji switch dotyczących typów.

Struktura implementacji FIPS 140-2 i FIPS 140-3 w standardowej bibliotece kryptograficznej Go
Analizuje ograniczenia integracji z zewnętrznym dostawcą C OpenSSL oraz omawia kolejno BoringCrypto (FIPS 140-2), tryb FIPS 140-3 w natywnym pakiecie standardowym crypto języka Go, weryfikację typu Fail-Fast, Hedged ECDSA oraz strukturę DRBG.

Tętniąca życiem bitmapa
Od koncepcji bitmapowego indeksu bazy danych, przez zasadę działania Roaring Bitmap, po zastosowania w języku Go. Omawiamy optymalizację bitmap na potrzeby wydajnego przetwarzania dużych zbiorów danych.

Polityka a komputery
Przyglądamy się temu, w jaki sposób polityka i informatyka, dziedziny pozornie odmienne, a jednak podobne, mogą wspólnie rozwiązywać problemy społeczne oraz w jaki sposób programista staje się nowym prawodawcą.

Zasada działania goroutine w Go: dynamiczny stos o rozmiarze 2KB oraz harmonogram M:N GMP
Wyjaśniamy różnicę między współbieżnością a równoległością, a następnie omawiamy 2KB początkowy zmienny stos goroutine, przełączanie kontekstu na poziomie użytkownika, GOMAXPROCS oraz model planowania w czasie wykonania GMP (Goroutine-Machine-Processor).

Database server i embedded database: porównanie architektury oraz charakterystyk I/O
Porównujemy niezależne od procesów systemy RDBMS oraz wbudowane bazy danych działające w tym samym procesie, takie jak SQLite, RocksDB, BadgerDB i PebbleDB, pod kątem opóźnień operacji wejścia-wyjścia na dyskach NVMe SSD, izolacji danych w architekturze MSA oraz struktury wdrożenia.

Konfiguracja wbudowanego serwera NATS w aplikacji Go oraz struktura komunikacji w obrębie procesu
Omawia sposób konfiguracji i uruchamiania brokera NATS (nats-server/v2) osadzonego wewnątrz procesu Go, a także projekt komunikacji w pamięci opartej na InProcessConn oraz interfejsu definiowanego przez konsumenta.

Interfejsy i osadzanie struktur w Go: różnice względem dziedziczenia klas oraz projektowanie oparte na kompozycji
Porównuje różnice między dziedziczeniem klas w Javie/C++ a strukturalnym typowaniem interfejsów w Go oraz wyjaśnia, na przykładach kodu, wzorzec kompozycji (Composition) wykorzystujący osadzanie struktur (struct embedding) i delegowanie metod.

5 cech projektowych języka Go z perspektywy inżynierii systemowej i backendowej
Przedstawiamy filozofię projektowania języka Go, koncentrując się na szybkiej kompilacji do kodu natywnego i wydajności wykonania, standardowej bibliotece działającej bez frameworków (net/http, database/sql), harmonogramie gorutyn typu M:N oraz gwarancji zgodności wstecznej.

Chwila spokoju za filiżanką zielonej herbaty, którą odbierze środowisko uruchomieniowe Go: GreenTea GC
Nowy GreenTea GC w Go poprawia wydajność, zwiększając efektywność zbierania małych obiektów dzięki opartemu na spanach pamięci podejściu. Przyjrzymy się istniejącym problemom GC oraz korzyściom płynącym z GreenTea GC.

Skrócenie czasu odpowiedzi przy przesyłaniu plików HTTP w Go: implementacja asynchronicznej kolejki zadań roboczych opartej na kanałach
Struktura ta rozdziela odbiór plików tymczasowych w handlerze przesyłania plików net/http oraz operacje transferu do kontenerów Incus na kanał buforowany i pulę workerów opartą na goroutines, dzięki czemu skraca się opóźnienie odpowiedzi endpointu.

Analiza zmian w działaniu encoding/json/v2 w Go 1.25 oraz warstwy zgodności z v1
Porównujemy dopasowywanie wielkości liter, zmiany semantyki omitempty/omitzero, serializację nil slice/map oraz opcje w encoding/json/v2, wprowadzonym jako funkcja eksperymentalna Go 1.25 (goexperiment.jsonv2).

Wstrzykiwanie zmiennych w czasie kompilacji w Go: zastosowanie go build -ldflags -X
Omówienie sposobu wstrzykiwania wartości zmiennych tekstowych Go w czasie kompilacji, bez zewnętrznego pliku .env, z wykorzystaniem flagi linkera go build -ldflags "-X" oraz wskazaniem ścieżki symbolu pakietu.

Obsługa błędów HTTP w sposób mniej uciążliwy + RFC7807
Czy obsługa błędów w Go API jest uciążliwa? Spróbuj rozwiązania opartego na RFC7807, które pozwala na prostszą i bardziej przejrzystą obsługę.

Porównanie projektów języków w środowiskach generowania kodu przez LLM: koszt abstrakcji a jawność języka Go
Analiza tego, w jaki sposób polimorfizm obiektowy, cukier składniowy oraz złożone drzewa modułów zwiększają koszt wnioskowania kontekstowego LLM, oraz omówienie powodów, dla których Go, dzięki jawnemu przepływowi sterowania i prostej składni, sprzyja generowaniu kodu przez sztuczną inteligencję.

Opowieść o Cilium: zadziwiająca poprawa stabilności sieci dzięki drobnej zmianie w kodzie
Dowiedz się szczegółowo, w jaki sposób niewielka zmiana w kodzie projektu Cilium znacząco zwiększyła stabilność zarządzania połączeniami NAT opartego na mechanizmie LRU.

Krótkie zrozumienie hosta MCP
Tekst ma na celu ułatwienie zrozumienia protokołu MCP firmy Anthropic oraz hosta MCP (mcphost) zaimplementowanego w języku Go.

Uruchamianie skalowalnego serwera Go w .NET Aspire
Jak uruchamiać serwery Go w sposób skalowalny za pomocą .NET Aspire: przykład konfiguracji skalowania poziomego i automatyzacji z wykorzystaniem odwrotnego proxy YARP.

Doświadczenia z użyciem MLDSA i MLKEM w języku Go
W języku Go zapoznamy się ze sposobem użycia kryptografii postkwantowej MLDSA i MLKEM, przedstawiając cechy każdego z algorytmów oraz przykłady kodu.

Przegląd wydania Go 1.24: mapy Swiss Table, ML-KEM, os.Root i testing/synctest
Przegląd techniczny Go 1.24: wbudowane mapy oparte na Swiss Table, crypto/mlkem (FIPS 203), TLS Encrypted Client Hello, runtime.AddCleanup, os.Root oraz testing/synctest.

Randflake ID: Generowanie rozproszonych 64-bitowych unikalnych identyfikatorów z wykorzystaniem szyfru blokowego Sparx64
Rozproszony generator unikalnych identyfikatorów 64-bitowych łączący 30-bitowy znacznik czasu, 17-bitowy identyfikator węzła, 17-bitowy lokalny licznik oraz szyfr blokowy Sparx64 ARX, zapewniający nieprzewidywalność identyfikatorów.

Zwiększanie responsywności dzięki klientowi cache Redis po stronie klienta
Poprawa responsywności API z wykorzystaniem Redis Server Assisted Client Side Cache

Implementacja przeglądarki obrazów opartej na wielofailowym Listboxie w Go i Tcl/Tk 9.0
Dodajemy powiązania poleceń Tcl listbox oraz obsługę zdarzeń wirtualnych do modernc.org/tk9.0, aby zaimplementować graficzną przeglądarkę obrazów umożliwiającą otwieranie wielu plików graficznych, przełączanie wyboru oraz usuwanie elementów z listy.

Implementacja GUI Tcl/Tk w Go bez CGo (modernc.org/tk9.0): pakowanie widżetów i renderowanie obrazów
Implementacja tworzenia okien, rozmieszczania widżetów przycisków i paska menu oraz renderowania obrazów SVG/PNG/ICO w Go, z wykorzystaniem biblioteki międzyplatformowej modernc.org/tk9.0 bez zależności od CGo.

Go i ekosystem OpenAPI
Przedstawiamy biblioteki oraz strategie, które można wykorzystać podczas tworzenia API opartych na OpenAPI w języku Go.

Pakiet startowy do współbieżności w Go
Przedstawiamy różnorodne narzędzia i techniki zarządzania współbieżnością w Go, w tym gorutyny, kanały oraz muteksy.

Dlaczego Go wybrało jawne zwracanie błędów oraz panic-recover zamiast rzucania wyjątków try-catch
Przyjrzymy się ograniczeniom struktur try-catch, które przerzucają odpowiedzialność za obsługę wyjątków wzdłuż stosu wywołań, oraz wyjaśnimy projekt panic-recover w języku Go, ograniczony wyłącznie do stanów nieodwracalnych, w połączeniu z jawną obsługą błędów (error) w miejscu wywołania.

Budowa infrastruktury usług AI w języku Go: współbieżność i integracja API
Sposób, w jaki Go obsługuje orkiestrację API modeli fundamentalnych, współbieżne operacje sieciowe wejścia-wyjścia, potoki strumieniowe oraz wdrażanie usług natywnych dla chmury.