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-monorepon uudelleenajattelu: CAS-Native-arkkitehtuuri ihmisille ja koodausagenteille
Kuinka rakentaa nolladaemonin, CAS-natiivi monorepo tavalliselle Gitille käyttäen parentless trunk -snapshoteja, eristettyjä työtila-viittauksia (workspace references), muistissa olevia merge-puita (in-memory merge trees), hierarkkisia OWNERS-tiedostoja sekä O(delta)-peilisynkronointia.

gosuda.org/zstd: Drop-In-yhteensopiva DataDog/zstd-pakkaus ilman CGO-riippuvuutta ja kaatumisten eristäminen
CGO_ENABLED=0 Go-Zstandard-kirjasto, joka suorittaa alkuperäisen C-kirjaston libzstd 1.5.7 jaetussa muistissa toimivassa työprosessissa, DataDog/zstd-yhteensopivalla rajapinnalla, uudelleenkäytettävillä kontekstiatuilla ja joukkokäsittelyllä (bulk batching).

gosuda.org/sqlite3: CGO_ENABLED=0 database/sql Driver Shared-Memory IPC:n välityksellä
Go-kielinen, database/sql-yhteensopiva SQLite 3.54.1 -ajuri, joka toimii ilman CGO-riippuvuutta (CGO_ENABLED=0), tarjoaa HQQ-pohjaisen jaetun muistin työprosessien eristyksen, 64 KiB:n eräkohtaisen rivien esihakemisen sekä SLSA-todennetut binäärit.

HQQ: C-kirjastojen eristäminen Go-kielestä välimuistirivillä jaetun muistin avulla
Nollacgo-IPC-ajoaika, IDL-kääntäjä (hqq-bindgen) ja todennettu prosessivalvoja, jotka suorittavat natiivit C11-kirjastot eristetyissä työprosesseissa jaettujen muistipuskurien (shared-memory rings) kautta.

Schottky: Zero-Allocation, Order-Preserving Byte-Key Encoding Go-kielelle
Zero-allocation Go-kirjasto, joka koodaa composite tuple -rakenteet memcmp-järjestetyiksi byte-avaimiksi riippumattomalla ASC/DESC-lajittelulla, NULL-sijoittelutageilla ja prefix-scan-rajoilla.

Portalite: monen releen sidonta ja standardin net.Listener-rajapintaan perustuva kevyt Portal Go SDK
Go:n standardin net.Listener-rajapinnan kanssa yhteensopiva, useiden relayden samanaikaisen sidonnan, päästä päähän salauksen (E2EE) ja automaattisen istunnon palautuksen tukeva kevyt Portal-asiakasohjelma ja komentorivityökalu.

Go 1.27, eli miten opin lakkaamaan huolehtimasta ja rakastamaan geneerisiä metodeja
Geneeriset metodit, encoding/json/v2, vakiomuotoinen uuid-paketti sekä goroutine-vuotojen tunnistin, joka todella toimii. Katsaus Go 1.27:ään esimerkkeineen, jotka kaikki on todella ajettu.

Managed-kielen ajonaikainen rakenne ja Go-binäärien AMD64-assemblyanalyysi
Vertaamme hallinnoitujen ja hallinnoimattomien kielten suoritusmalleja ja analysoimme go tool objdump -työkalulla poimitun AMD64-kokoonpanokielen avulla Go-binäärien pinotarkistuksia ja ajonaikaisten funktiokutsujen rakennetta.

Go-kielen ehtolauseen (if) AMD64-assemblykoodin generointi ja haaraamiskäskyjen analyysi
Tässä verrataan, miten Go-kääntäjä muuntaa if-else-ehtolauseet AMD64-konekielen haarautumiskäskyihin, kuten CMPQ, JGE ja JMP, sekä C-kääntäjän (-O2) tuottamaa haarautumiskoodia.

AI-natiivi ohjelmistokehitysmetodologia: kaksisuuntaisesta kontekstin kierrosta työkalujen käytön yli
Tekoälyriippuvaisen kehityksen ja pelkän työkalukäytön vaiheiden rakenteellisia rajoitteita verrataan, ja määritellään AI-natiivi kehitysprosessi, joka kerryttää suunnitteluaikomuksia ja organisaatiokontekstia molempiin suuntiin.

Portal Tunnel: paikallisten palvelujen julkistaminen hajautettujen julkisten releiden kautta
Julkaise paikalliset HTTP-palvelut julkiseen internetiin yhdellä curl-komennolla monireleisten, lupaa vaativien Portal-tunnelien kautta ilman tilejä tai binäärin asennusta.

Shannonin kanavakapasiteettirajat ja tekoälypohjainen semanttinen viestintä (Semantic Communication) -rakenne
Tarkastellaan Shannon–Hartleyn lauseen mukaisia fyysisen kanavan kapasiteetin rajoja ja käsitellään semanttista viestintää, jossa lähetettävä data tiivistetään merkitysyksiköiden, ei bittien, muodossa jaetun tietopohjan sekä semanttisen kooderin ja dekooderin avulla.

Portal: avoin päätteestä päähän salattu rele, joka välittää paikallisia palveluita ulkoiseen verkkoon
Tässä kuvataan Portal-arkkitehtuuri, jossa paikallinen palvelin julkaistaan ulkoiseen internetiin päästä päähän salatun (E2EE) avoimen releverkon kautta ilman julkista IP-osoitetta tai pilvi-infrastruktuurin määrityksiä.

Suorat Linux-järjestelmäkutsut puhtaassa Go-kielessä syscall.Syscall- ja unsafe.Pointer-funktioiden avulla
Linux-ytimen järjestelmäkutsujen, kuten SYS_SYSINFO, kutsuminen suoraan puhtaasta Go-koodista käyttäen ABI-linjattuja rakenteita, unsafe.Pointer-tyyppiä ja vakiomuotoista syscall-pakettia ilman cgo-ratkaisua.

Any ei ole Any, mutta Any on Any
Tässä analysoidaan yksityiskohtaisesti Go-kielen `any`-tyyppiä ja sen sisäistä `EFace`-rakennetta sekä selostetaan dynaamisen tyyppikäsittelyn menetelmiä, joissa hyödynnetään `reflect`-pakettia sekä tyyppiassertioita ja tyyppikytkentöjä.

Go-standardin kryptografiakirjaston FIPS 140-2- ja FIPS 140-3 -toteutusten rakenne
Analysoidaan ulkoisen C-pohjaisen OpenSSL Provider -integraation rajoituksia ja käsitellään BoringCryptoa (FIPS 140-2) alkaen Go-kielen natiivin standardikirjaston crypto-paketin FIPS 140-3 -tilaa, Fail-Fast-validointia, Hedged ECDSA:ta ja DRBG-rakennetta.

Eloisa bitmap
Tietokantojen bittikarttaindeksien käsitteestä Roaring Bitmapin toimintaperiaatteeseen ja Go-kielen käyttöön. Tarkastelemme bittikarttaoptimointia suurten tietoaineistojen tehokasta käsittelyä varten.

Politiikka ja tietokoneet
Politiikka ja tietojenkäsittelytiede, kaksi alaa, jotka näyttävät erilaisilta mutta muistuttavat toisiaan, tarkastelevat, miten ne voivat ratkaista yhteiskunnallisia ongelmia ja miten kehittäjästä voi tulla uusi lainsäätäjä.

Go-goroutinien (Goroutine) toimintaperiaate: 2 KB:n muuttuva pino ja M:N GMP-ajoitin
Käsittelemme aluksi samanaikaisuuden (concurrency) ja rinnakkaisuuden (parallelism) eron, minkä jälkeen tarkastelemme goroutinen 2 KB:n alkuperäistä muuttuvakokoista pinoa, käyttäjätason kontekstinvaihtoa, GOMAXPROCS-asetusta sekä GMP-mallia (Goroutine-Machine-Processor), eli Go-ajonaikaisen ajoituksen (runtime scheduling) mallia.

Tietokantapalvelimet ja upotetut tietokannat: arkkitehtuurin ja I/O-ominaisuuksien vertailu
Vertaamme itsenäisiä prosessipohjaisia RDBMS-järjestelmiä ja prosessinsisäisiä upotettuja tietokantoja, kuten SQLite, RocksDB, BadgerDB ja PebbleDB, NVMe SSD -levyn I/O-viiveen, MSA-tietojen eristämisen sekä käyttöönottorakenteen näkökulmasta.

Go-sovelluksen upotettu NATS-palvelimen kokoonpano ja prosessinsisäinen viestintärakenne
Tämä käsittelee menetelmää, jolla NATS-välittäjä (nats-server/v2) upotetaan ja käynnistetään Go-prosessin sisällä, sekä InProcessConn-pohjaista muistinsisäistä viestintää ja kuluttajien määrittelemien rajapintojen suunnittelua.

Go-rajapinnat ja rakenteiden upottaminen: erot luokkaperintään ja koostamiseen perustuvaan suunnitteluun
Tässä vertaillaan Java/C++:n luokkaperintöä ja Go-kielen interfaceja sekä niiden structural typing -mallia, ja selitetään koodiesimerkkien avulla Composition-malli, joka hyödyntää struct embedding -tekniikkaa ja method delegation -menetelmää.

Go-kielen viisi suunnitteluominaisuutta järjestelmä- ja taustajärjestelmäinsinöörin näkökulmasta
Tämä teksti käsittelee Go-kielen suunnitteluperiaatteita, keskittyen nopeaan natiivikääntämiseen ja suorituskykyyn, ilman kehyksiä toimiviin vakiokirjastoihin (net/http, database/sql), M:N-goroutiinien ajoitusohjelmaan sekä taaksepäin yhteensopivuuden takaamiseen.

Go-ajonaikaan (runtime) viedyn vihreän teen hetkellinen rauha: GreenTea GC
Go:n uusi GreenTea GC parantaa suorituskykyä parantamalla pienten olioiden roskienkeruun tehokkuutta muistivälipohjaisesti. Tarkastelemme olemassa olevan GC:n ongelmia ja GreenTea GC:n tarjoamia etuja.

Go HTTP-tiedostolatauksen vasteajan lyhentäminen: kanavapohjaisen asynkronisen työntekijäjonon toteutus
Tämä rakenne erottaa net/http-tiedostolatauskäsittelijässä väliaikaisten tiedostojen vastaanoton ja Incus-konttiin tapahtuvan siirron omiksi tehtävikseen puskurikanavan ja goroutine-työntekijäpoolin avulla, mikä vähentää päätepisteen vastausviivettä.

Go 1.25 encoding/json/v2 käyttäytymismuutokset ja v1-yhteensopivuuskerroksen analyysi
Vertaamme encoding/json/v2:n kirjainkokoon huomioivaa vastaavuutta, omitempty- ja omitzero-määritteiden merkityksen muutoksia, nil-viipaleiden ja -karttojen serialisointia sekä asetuksia, jotka on esitelty Go 1.25:n kokeellisena ominaisuutena (goexperiment.jsonv2).

Go-kääntöajan muuttujien injektointi: go build -ldflags -X -käytön opas
Tämä käsittelee menetelmää, jolla Go-merkkijonomuuttujien arvot injektoidaan käännösaikana ilman ulkoista .env-tiedostoa, käyttämällä go build -ldflags "-X" linker flagia ja määrittämällä paketin symbol path -polun.

Virheiden käsittelyn helpottaminen HTTP-virheissä + RFC7807
Ovatko Go API:n virheenkäsittelyn vaivalloisuudet vaivaavat? Käsittele virheet RFC7807-standardin avulla yksinkertaisemmin ja selkeämmin.

Kielisuunnittelun vertailu LLM-pohjaisessa koodigeneroinnissa: abstraktioiden kustannukset ja Go-kielen eksplisiittisyys
Tämä artikkeli analysoi, miten olio-ohjelmoinnin polymorfismi, syntaktinen sokeri ja monimutkaiset moduulipuut kasvattavat LLM-mallien kontekstipäättelyn kustannuksia, ja käsittelee syitä, joiden vuoksi Go, jolla on eksplisiittinen ohjausvirta ja yksinkertainen syntaksi, soveltuu tekoälyavusteiseen koodin generointiin.

Cilium-tarina: pienen koodimuutoksen aikaansaama merkittävä verkon vakauden parantuminen
Tutustumme yksityiskohtaisesti siihen, miten yksi pieni koodimuutos Cilium-projektissa paransi merkittävästi LRU-pohjaisen NAT-yhteyksien hallinnan vakautta.

MCP-isännän hieman ymmärtäminen
Tämä teksti auttaa ymmärtämään Anthropicin MCP-protokollaa ja Go-kielellä toteutettua MCP-isäntää (mcphost).

Dotnet Aspiressa skaalautuvan Go-palvelimen suorittaminen
Go-palvelimen skaalautuva suorittaminen .NET Aspirellä: esimerkki vaakasuuntaisesta skaalaamisesta ja automaattisesta konfiguroinnista YARP reverse proxy -palvelun avulla.

Kokemuksia MLDSA:n ja MLKEM:n käytöstä Go-kielessä
Tässä selostetaan, miten Go-kielessä käytetään kvanttikestävää salausta MLDSA ja MLKEM, ja esitellään kunkin algoritmin ominaisuudet sekä koodiesimerkit.

Go 1.24 -julkaisun yleiskatsaus: Swiss Table Maps, ML-KEM, os.Root ja testing/synctest
Go 1.24:n teknillinen katsaus: Swiss Table -pohjaiset sisäänrakennetut kartat, crypto/mlkem (FIPS 203), TLS Encrypted Client Hello, runtime.AddCleanup, os.Root ja testing/synctest.

Randflake ID: hajautettu 64-bittisen yksilöllisen tunnisteen generointi Sparx64-lohkosalauksella
Hajautettu 64-bittinen yksilöllinen tunnisteen generaattori, joka yhdistää 30-bittisen aikaleiman, 17-bittisen solmutunnuksen, 17-bittisen paikallisen laskurin sekä Sparx64 ARX -lohkosalauksen arvaamattomien tunnisteiden muodostamiseksi.

Reagoivuuden parantaminen Redis client-side cache -välimuistin avulla
Redis-palvelimen avustama asiakaspuolen välimuisti API:n reagointikyvyn parantamiseksi

Go- ja Tcl/Tk 9.0 -pohjainen monitiedostoinen listaruutuun perustuva kuvankatselin
Toteutamme graafisen kuvankatselimen lisäämällä modernc.org/tk9.0-kirjastoon Tcl-listbox-komentojen sidonnat ja virtuaalisten tapahtumien käsittelijät, jotka mahdollistavat useiden kuvatiedostojen avaamisen, valinnan vaihtamisen sekä luettelon kohteiden poistamisen.

CGo ilman toteutettu Go Tcl/Tk (modernc.org/tk9.0) GUI: widgettien pakkaaminen ja kuvien renderöinti
Tässä toteutetaan Go-kielellä ikkunoiden luonti, painike- ja valikkopalkkiwidgettien pakkaaminen sekä SVG-, PNG- ja ICO-kuvien renderöinti käyttäen CGo-riippuvuuksia vailla olevaa alustojen välistä kirjastoa modernc.org/tk9.0:aa.

Go ja OpenAPI-ekosysteemi
Tässä esitellään kirjastoja ja strategioita, joita voi käyttää OpenAPI-pohjaisen API-kehityksen toteuttamisessa Go-kielellä.

Go concurrency -aloituspaketti
Tämä esittelee erilaisia työkaluja ja tekniikoita Go-kielen samanaikaisuuden hallintaan, kuten goroutine-säikeitä, kanavia ja mutex-lukkoja.

Syy, miksi Go valitsi eksplisiittisen virheen palauttamisen ja panic-recover-mekanismin try-catch-poikkeusten heittämisen sijaan
Tarkastelemme try-catch-rakenteen rajoituksia, joka siirtää poikkeusten käsittelyvastuun kutsupinoa pitkin, ja selitämme Go-kielen panic-recover-suunnittelua, joka on rajattu ainoastaan palautumattomiin tiloihin, sekä kutsupisteen eksplisiittistä error-käsittelyä.

Tekoälypalveluiden infrastruktuurin rakentaminen Go-kielellä: Concurrency ja API-integraatio
Tapa, jolla Go hoitaa perusmallien rajapintojen orkestroinnin, samanaikaisen verkko-I/O:n, suoratoistoputkistot ja pilvinatiivin palvelujen käyttöönoton.