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

- Repositories
- 98
- GitHub stars
- 713
- Articles
- 41
- 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
Randflake ID: a distributed, uniform, unpredictable, unique random ID generator.
sites/artifacts alternative
Golang implementation of an x402 payment facilitator
From the blog
Deep dives written by GoSuda members.

gosuda.org/zstd: Compressione compatibile con DataDog/zstd come drop-in replacement, senza CGO e con isolamento dei crash
CGO_ENABLED=0 Libreria Go per Zstandard che esegue la libreria C upstream libzstd 1.5.7 in un worker con memoria condivisa, con un'API compatibile con DataDog/zstd, contesti riutilizzabili e elaborazione in batch.

gosuda.org/sqlite3: driver database/sql con CGO_ENABLED=0 basato su IPC a memoria condivisa
Driver database/sql per SQLite 3.54.1 compatibile con Go, utilizzabile in sostituzione diretta, con CGO_ENABLED=0, isolamento dei worker tramite memoria condivisa HQQ, prefetch delle righe in batch da 64 KiB e binari con attestazione SLSA.

HQQ: Isolamento delle librerie C dal Go tramite memoria condivisa su cache-line
Runtime IPC senza cgo, compilatore IDL (hqq-bindgen) e supervisore di processi verificato che eseguono librerie native C11 in processi worker isolati tramite ring di memoria condivisa.

Schottky: Codifica di chiavi in byte senza allocazioni e con preservazione dell'ordine per Go
Libreria Go a zero allocazioni che codifica tuple composite in chiavi di byte ordinate tramite memcmp, con ordinamento ASC/DESC indipendente, tag di posizionamento dei NULL e limiti per la scansione dei prefissi.

Portalite: un SDK Go leggero per Portal basato su binding multi-relay e su net.Listener standard
Un client Portal leggero e CLI che supporta l'interfaccia standard net.Listener di Go, il binding simultaneo a più relay, la crittografia end-to-end (E2EE) e il ripristino automatico delle sessioni.

Go 1.27, ovvero come ho imparato a smettere di preoccuparmi e ad amare i metodi generici
Metodi generici, encoding/json/v2, un pacchetto uuid standard e un rilevatore di goroutine leak che funziona davvero. Un percorso guidato attraverso Go 1.27 con esempi tutti effettivamente eseguiti.

Analisi delle istruzioni di diramazione e della generazione del codice assembly AMD64 per le istruzioni condizionali (if) in Go
Il presente documento confronta il processo con cui il compilatore Go traduce le istruzioni condizionali if-else in istruzioni di salto a linguaggio macchina AMD64, quali CMPQ, JGE e JMP, con i risultati della generazione del codice di diramazione prodotti dal compilatore C (-O2).

Analisi della struttura di runtime dei linguaggi gestiti e dei binari Go in assembly AMD64
Il presente lavoro confronta i modelli di esecuzione dei linguaggi gestiti (managed) e non gestiti (unmanaged) e, attraverso l'assembly AMD64 estratto con go tool objdump, analizza il controllo dello stack e la struttura delle chiamate alle funzioni di runtime nei binari Go.

Metodologia di sviluppo AI-native: circolazione bidirezionale del contesto oltre l'utilizzo degli strumenti
Il presente documento confronta i limiti strutturali della dipendenza dall'IA e della fase di mero utilizzo degli strumenti di IA nello sviluppo software, e definisce un processo di sviluppo AI-native che accumula in modo bidirezionale le intenzioni progettuali e il contesto organizzativo.

Portal Tunnel: Esporre i servizi localhost tramite relay pubblici decentralizzati
Esponi servizi HTTP locali su internet pubblica con un singolo comando curl, tramite tunnel Portal multi-relay e senza autorizzazione, senza account né installazione di file binari.

Limiti di capacità del canale di Shannon e struttura della comunicazione semantica (Semantic Communication) basata sull'IA
Esaminiamo il limite della capacità del canale fisico secondo il teorema di Shannon-Hartley e trattiamo la comunicazione semantica, che comprime i dati trasmessi in unità di significato anziché in bit, mediante una base di conoscenza condivisa e codificatori/decodificatori semantici.

Portal: un relay aperto con crittografia end-to-end che inoltra i servizi locali verso reti esterne
Viene descritta l'architettura Portal, che espone un server locale su Internet pubblico attraverso una rete di relay aperta con crittografia end-to-end (E2EE), senza necessità di un IP pubblico o di una configurazione di infrastruttura cloud.

Chiamate di sistema Linux dirette in Go puro con syscall.Syscall e unsafe.Pointer
Invocare le system call del kernel Linux, come SYS_SYSINFO, direttamente da Go puro utilizzando struct allineate all'ABI, unsafe.Pointer e il pacchetto standard syscall, senza cgo.

Any non è Any, ma Any è Any
Analizza in dettaglio il tipo `any` del linguaggio Go e la sua struttura interna `EFace`, e descrive i metodi di gestione dinamica dei tipi che sfruttano il pacchetto `reflect` nonché le asserzioni e gli switch di tipo.

Struttura delle implementazioni FIPS 140-2 e FIPS 140-3 nella libreria crittografica standard di Go
Viene analizzato il limite dell'integrazione con un provider OpenSSL esterno in C, e vengono trattati la BoringCrypto (FIPS 140-2), la modalità FIPS 140-3 del pacchetto crypto nativo di Go, la verifica Fail-Fast, l'ECDSA Hedged e la struttura DRBG.

Mappa di bit vivace
Dai concetti sugli indici bitmap nei database al funzionamento di Roaring Bitmap e al suo utilizzo con il linguaggio Go. Si esplora l'ottimizzazione tramite bitmap per l'elaborazione efficiente di insiemi di dati di grandi dimensioni.

Politica e informatica
La politica e l'informatica, due discipline apparentemente diverse ma per certi versi affini, esplorano come possano risolvere insieme i problemi sociali e in che modo lo sviluppatore possa diventare un nuovo legislatore.

Funzionamento delle goroutine in Go: stack variabile da 2KB e scheduler GMP M:N
Verranno illustrate le differenze tra concorrenza e parallelismo, lo stack variabile iniziale di 2KB delle goroutine, il context switching a livello utente, GOMAXPROCS e il modello di scheduling del runtime GMP (Goroutine-Machine-Processor).

Server di database e database embedded: confronto tra architettura e caratteristiche di I/O
Questo studio confronta i RDBMS basati su processi indipendenti con i database embedded in-process, quali SQLite, RocksDB, BadgerDB e PebbleDB, dal punto di vista della latenza di I/O su NVMe SSD, dell'isolamento dei dati in MSA e della struttura di deployment.

Configurazione di un server NATS integrato in un'applicazione Go e struttura della comunicazione in-process
Vengono trattati la configurazione per l'avvio di un broker NATS (nats-server/v2) incorporato all'interno di un processo Go, nonché la comunicazione in memoria basata su InProcessConn e la progettazione di interfacce definite dal consumatore.

Interfacce Go e struct embedding: differenze rispetto all'ereditarietà di classe e progettazione basata sulla composizione
Confronta le differenze tra l'ereditarietà di classi in Java/C++ e la tipizzazione strutturale delle interfacce in Go, e illustra con esempi di codice il pattern di composizione (Composition) basato sull'embedding di strutture e sulla delega dei metodi.

Cinque caratteristiche progettuali del linguaggio Go nella prospettiva dell'ingegneria dei sistemi e del backend
Il presente documento illustra la filosofia progettuale di Go, con particolare attenzione alla compilazione nativa rapida e alle prestazioni di esecuzione, alla libreria standard che opera senza framework (net/http, database/sql), allo scheduler di goroutine M:N e alla garanzia di compatibilità con le versioni precedenti.

Il tempo di una tazza di tè verde che il runtime di Go non ci sottrarrà più: GreenTea GC
Il nuovo GreenTea GC di Go migliora le prestazioni aumentando l'efficienza della garbage collection per gli oggetti di piccole dimensioni, basandosi sugli span di memoria. Vengono illustrati i problemi del GC preesistente e i vantaggi del GreenTea GC.

Riduzione del ritardo di risposta nell'upload di file HTTP in Go: implementazione di una coda di worker asincroni basata su canali
Questa struttura separa, nel gestore di caricamento file di net/http, la ricezione dei file temporanei dall'operazione di trasferimento verso il container Incus, utilizzando un canale con buffer e un pool di worker basati su goroutine, al fine di ridurre la latenza di risposta dell'endpoint.

Analisi delle modifiche comportamentali di encoding/json/v2 in Go 1.25 e del livello di compatibilità con v1
Confronta la corrispondenza sensibile alle maiuscole e minuscole, le modifiche semantiche di omitempty e omitzero, la serializzazione di slice e mappe nil e le relative opzioni nel package encoding/json/v2, introdotto come funzionalità sperimentale in Go 1.25 (goexperiment.jsonv2).

Iniezione di variabili in fase di compilazione in Go: uso di go build -ldflags -X
Questo testo illustra come iniettare valori di variabili stringa Go in fase di compilazione, senza ricorrere a un file .env esterno, specificando il flag del linker `-ldflags "-X"` di go build e il percorso del simbolo del pacchetto.

Gestire gli errori HTTP in modo meno gravoso + RFC7807
Trovi laboriosa la gestione degli errori nelle API in Go? Affrontala in modo più semplice e chiaro con RFC 7807.

Confronto tra progettazione linguistica in contesti di generazione di codice tramite LLM: costo dell'astrazione ed esplicitezza di Go
Questo articolo analizza come il polimorfismo orientato agli oggetti, lo zucchero sintattico (syntactic sugar) e gli alberi di moduli complessi aumentino il costo di inferenza del contesto negli LLM, e illustra perché Go, con il suo flusso di controllo esplicito e la sua sintassi semplice, sia più favorevole alla generazione di codice tramite IA.

Cilium: il miglioramento sorprendente della stabilità di rete ottenuto con una piccola modifica al codice
Scopri nel dettaglio come una piccola modifica al codice del progetto Cilium abbia notevolmente migliorato l'affidabilità della gestione delle connessioni NAT basata su LRU.

Capire meglio gli MCP host
Questo articolo si propone di favorire la comprensione del protocollo MCP di Anthropic e di mcphost, un host MCP implementato in Go.

Esecuzione di un server Go scalabile con .NET Aspire
Come eseguire server Go in modo scalabile con .NET Aspire: esempio di configurazione per la scalabilità orizzontale e l'automazione con il reverse proxy YARP.

Esperienza nell'uso di MLDSA e MLKEM nel linguaggio Go
Questa guida illustra l'uso di MLDSA e MLKEM, algoritmi di crittografia resistente ai computer quantistici, nel linguaggio Go, descrivendo le caratteristiche di ciascun algoritmo e fornendo esempi di codice.

Panoramica della versione Go 1.24: Mappe Swiss Table, ML-KEM, os.Root e testing/synctest
Panoramica tecnica di Go 1.24: mappe integrate basate su Swiss Table, crypto/mlkem (FIPS 203), TLS Encrypted Client Hello, runtime.AddCleanup, os.Root e testing/synctest.

Randflake ID: generazione distribuita di identificatori univoci a 64 bit con il cifrario a blocchi Sparx64
Generatore distribuito di ID univoci a 64 bit che combina un timestamp a 30 bit, un ID di nodo a 17 bit, un contatore locale a 17 bit e il cifrario a blocchi Sparx64 ARX per ottenere ID non prevedibili.

Migliorare la reattività con una cache lato client di Redis
Miglioramento della reattività delle API tramite Redis Server Assisted Client Side Cache

Implementazione di un visualizzatore di immagini basato su listbox a selezione multipla di file con Go e Tcl/Tk 9.0
Implementa un visualizzatore di immagini con interfaccia grafica, aggiungendo a modernc.org/tk9.0 l'associazione dei comandi Tcl listbox e i gestori di eventi virtuali, che consentono l'apertura di più file immagine, il passaggio di selezione e l'eliminazione di voci dall'elenco.

Implementazione di una GUI Tcl/Tk in Go senza CGo (modernc.org/tk9.0): packing dei widget e rendering delle immagini
Implementazione in Go della creazione di finestre, del posizionamento dei widget pulsante e barra dei menu e della resa di immagini SVG/PNG/ICO, utilizzando la libreria multipiattaforma modernc.org/tk9.0, priva di dipendenze da CGo.

Go e l'ecosistema OpenAPI
Presentiamo le librerie e le strategie utilizzabili per lo sviluppo di API basate su OpenAPI con il linguaggio Go.

Kit introduttivo alla concorrenza in Go
Vengono presentati vari strumenti e tecniche per la gestione della concorrenza in Go, tra cui goroutine, canali e mutex.

Perché Go ha scelto la restituzione esplicita degli errori e panic-recover al posto del lancio di eccezioni try-catch
Vengono esaminati i limiti della struttura try-catch, che trasferisce la responsabilità della gestione delle eccezioni lungo lo stack delle chiamate, e viene illustrato il design di Go basato su panic-recover, riservato alle sole condizioni di stato irrecuperabili, insieme alla gestione esplicita degli errori nel punto di chiamata.

Costruire un'infrastruttura di servizi AI in Go: concorrenza e integrazione di API
Come Go gestisce l'orchestrazione delle API dei foundation model, l'I/O di rete concorrente, le pipeline di streaming e il deployment di servizi cloud-native.