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.

Repensando el Git Monorepo: una arquitectura CAS-Native para humanos y Coding Agents
Cómo construir un monorepo sin demonios, nativo de CAS, sobre Git estándar, utilizando instantáneas de tronco sin padres, referencias de espacios de trabajo aislados, árboles de fusión en memoria, OWNERS jerárquicos y sincronización de espejos en O(delta).

gosuda.org/zstd: Compresión compatible con DataDog/zstd sin CGO y con aislamiento de fallos
CGO_ENABLED=0 Biblioteca Go de Zstandard que ejecuta la libzstd de C upstream 1.5.7 en un worker de memoria compartida, con una API compatible con DataDog/zstd, contextos reutilizables y procesamiento por lotes.

gosuda.org/sqlite3: Controlador database/sql con CGO_ENABLED=0 sobre IPC de memoria compartida
Controlador SQLite 3.54.1 compatible con database/sql para Go con CGO_ENABLED=0, aislamiento de workers mediante memoria compartida HQQ, prefetch de filas por lotes de 64 KiB y binarios con atestación SLSA.

HQQ: Aislamiento de bibliotecas C desde Go mediante memoria compartida en líneas de caché
Entorno de ejecución IPC sin cgo, compilador de IDL (hqq-bindgen) y supervisor de procesos verificado que ejecutan bibliotecas nativas C11 en procesos de trabajo aislados mediante anillos de memoria compartida.

Schottky: codificación de claves de bytes sin asignación de memoria y con preservación del orden para Go
Biblioteca de Go sin asignaciones de memoria que codifica tuplas compuestas en claves de bytes ordenadas mediante memcmp, con ordenación ASC/DESC independiente, etiquetas de ubicación de NULL y límites para búsquedas por prefijo.

Portalite: SDK de Go ligero para Portal con vinculación multirelé y net.Listener estándar
Es un cliente Portal y una CLI ligeros que implementan la interfaz estándar net.Listener de Go, con soporte para la vinculación simultánea a múltiples relés, el cifrado de extremo a extremo (E2EE) y la recuperación automática de sesiones.

Go 1.27, o cómo aprendí a dejar de preocuparme y amar los métodos genéricos
Métodos genéricos, encoding/json/v2, un paquete uuid estándar y un detector de fugas de goroutines que realmente funciona. Un recorrido por Go 1.27 con ejemplos que fueron todos efectivamente ejecutados.

Análisis de la estructura en tiempo de ejecución de los lenguajes gestionados y del ensamblador AMD64 de los binarios de Go
Se comparan los modelos de ejecución de los lenguajes gestionados y no gestionados, y mediante el ensamblador AMD64 extraído con go tool objdump se analizan la verificación de pila (stack check) y la estructura de llamadas a funciones de tiempo de ejecución en los binarios de Go.

Análisis de la generación de código ensamblador AMD64 para la sentencia condicional (if) de Go y de sus instrucciones de salto
Se compara el proceso mediante el cual el compilador de Go traduce las sentencias condicionales if-else a instrucciones de bifurcación de código máquina AMD64, como CMPQ, JGE y JMP, con los resultados de generación de código de bifurcación del compilador de C (-O2).

Metodología de desarrollo nativa de IA: circulación de contexto bidireccional más allá del uso de herramientas
Se comparan los límites estructurales de las etapas de dependencia excesiva de la IA y de uso de la IA como simple herramienta, y se define un proceso de desarrollo nativo de IA que acumula de forma bidireccional la intención de diseño y el contexto organizacional.

Portal Tunnel: Exponer servicios de localhost mediante relés públicos descentralizados
Exponga servicios HTTP locales a la internet pública con un único comando curl mediante túneles Portal de múltiples relés y sin permisos previos, sin necesidad de cuentas ni de instalar binarios.

Límites de capacidad de canal de Shannon y arquitectura de comunicación semántica (Semantic Communication) basada en IA
Se revisan los límites de capacidad del canal físico establecidos por el teorema de Shannon-Hartley y se aborda la comunicación semántica, que comprime los datos transmitidos en unidades de significado en lugar de unidades de bits, mediante una base de conocimiento compartida y codificadores/decodificadores semánticos.

Portal: relé abierto de cifrado de extremo a extremo que retransmite servicios locales hacia redes externas
Este documento describe la arquitectura Portal, que expone un servidor local a la Internet pública mediante una red de retransmisión abierta con cifrado de extremo a extremo (E2EE), sin necesidad de una IP pública ni de configuración de infraestructura en la nube.

Llamadas directas al sistema Linux en Go puro con syscall.Syscall y unsafe.Pointer
Invocación de llamadas al sistema del kernel de Linux, como SYS_SYSINFO, directamente desde Go puro mediante estructuras alineadas con la ABI, unsafe.Pointer y el paquete estándar syscall, sin cgo.

Any no es Any, pero Any es Any
Este documento analiza en detalle el tipo `any` del lenguaje Go y su estructura interna `EFace`, y explica los métodos de manejo dinámico de tipos mediante el paquete `reflect` y las aserciones y los switches de tipo.

Estructura de las implementaciones de FIPS 140-2 y FIPS 140-3 en la biblioteca estándar de criptografía de Go
Se analizan las limitaciones de la integración con proveedores externos de OpenSSL en C y se abordan, desde BoringCrypto (FIPS 140-2) hasta el modo FIPS 140-3 del paquete estándar crypto nativo de Go, la verificación Fail-Fast, el ECDSA con cobertura (Hedged ECDSA) y la estructura del DRBG.

Mapa de bits vibrante
Desde el concepto de índice de mapa de bits en bases de datos hasta el funcionamiento de Roaring Bitmap y su aplicación en el lenguaje Go. Se examina la optimización mediante mapas de bits para el procesamiento eficiente de conjuntos de datos a gran escala.

Política y computación
La política y la informática, dos campos aparentemente distintos pero afines, exploran cómo pueden resolver problemas sociales y cómo el desarrollador se convierte en un nuevo legislador.

Funcionamiento de las goroutines en Go: pila variable de 2 KB y el planificador M:N GMP
Se explican las diferencias entre concurrencia y paralelismo, la pila variable inicial de 2 KB de las goroutines, el cambio de contexto a nivel de usuario, GOMAXPROCS y el modelo de planificación en tiempo de ejecución GMP (Goroutine-Machine-Processor).

Servidores de bases de datos y bases de datos embebidas: comparación de arquitectura y características de E/S
Se comparan las bases de datos RDBMS basadas en procesos independientes y las bases de datos embebidas en proceso, como SQLite, RocksDB, BadgerDB y PebbleDB, desde la perspectiva de la latencia de E/S de los SSD NVMe, el aislamiento de datos en arquitecturas MSA y la estructura de despliegue.

Configuración de un servidor NATS integrado en aplicaciones Go y estructura de comunicación en proceso
Se abordan la configuración para ejecutar un broker NATS (nats-server/v2) embebido dentro de un proceso Go, así como el diseño de la comunicación en memoria basada en InProcessConn y de la interfaz de consumidor definida por el usuario.

Interfaces y embedding de estructuras en Go: diferencias con la herencia de clases y diseño basado en composición
Se comparan la herencia de clases de Java/C++ y la tipificación estructural de las interfaces de Go, y se explica mediante ejemplos de código el patrón de composición (Composition) basado en la incrustación de estructuras (struct embedding) y la delegación de métodos.

Cinco características de diseño del lenguaje Go desde la perspectiva de la ingeniería de sistemas y de backend
Este texto resume la filosofía de diseño de Go, centrada en la compilación nativa rápida y el rendimiento en tiempo de ejecución, en una biblioteca estándar que funciona sin frameworks (net/http, database/sql), en el planificador de goroutines M:N y en la garantía de compatibilidad con versiones anteriores.

El margen de una taza de té verde que el runtime de Go no nos quitará: GreenTea GC
El nuevo GreenTea GC de Go mejora el rendimiento al aumentar la eficiencia de la recolección de basura de objetos pequeños mediante un enfoque basado en spans de memoria. Se analizan los problemas del GC anterior y las ventajas de GreenTea GC.

Reducción de la latencia de respuesta en la carga de archivos HTTP en Go: implementación de una cola de trabajadores asíncronos basada en canales
Esta estructura separa, en el manejador de carga de archivos de net/http, la recepción de archivos temporales y las operaciones de transferencia a contenedores Incus mediante un canal con búfer y un pool de workers basado en goroutines, con el fin de reducir la latencia de respuesta del endpoint.

Análisis de los cambios de comportamiento de encoding/json/v2 en Go 1.25 y de la capa de compatibilidad con v1
Compara la coincidencia sensible a mayúsculas y minúsculas, los cambios semánticos de omitempy/omitzero, la serialización de slices y mapas nil, y las opciones de encoding/json/v2, introducido como función experimental de Go 1.25 (goexperiment.jsonv2).

Inyección de variables en tiempo de compilación en Go: uso de go build -ldflags -X
Este documento explica cómo inyectar valores de variables de cadena de Go en tiempo de compilación, sin utilizar un archivo .env externo, mediante el flag de enlazador `-ldflags "-X"` de `go build` y especificando la ruta del símbolo del paquete.

Manejo más sencillo de errores HTTP + RFC7807
¿Le resulta tedioso el manejo de errores en las API de Go? Gestiónelos de forma más sencilla y clara con RFC7807.

Comparación del diseño de lenguajes en entornos de generación de código con LLM: costo de abstracción y explicitud de Go
Se analizan los motivos por los que el polimorfismo orientado a objetos, el azúcar sintáctico y los árboles de módulos complejos incrementan el coste de inferencia contextual de los LLM, y se examina por qué Go, con su flujo de control explícito y su gramática simple, resulta ventajoso para la generación de código mediante IA.

Cilium 이야기: 작은 코드 변경이 만들어낸 놀라운 네트워크 안정성 향상
Descubra en detalle cómo un pequeño cambio de código en el proyecto Cilium mejoró de forma notable la estabilidad de la gestión de conexiones NAT basada en LRU.

Comprender un poco el host de MCP
Este texto tiene como objetivo facilitar la comprensión del protocolo MCP de Anthropic y del host MCP (mcphost) implementado en Go.

Ejecutar un servidor Go de forma escalable con .NET Aspire
Cómo ejecutar servidores Go de forma escalable con .NET Aspire: ejemplo de escalado horizontal y configuración automatizada mediante el proxy inverso YARP.

Experiencia de uso de MLDSA y MLKEM en el lenguaje Go
En el lenguaje Go, se explica el uso de MLDSA y MLKEM, algoritmos de cifrado resistentes a la computación cuántica, y se ofrecen las características de cada algoritmo junto con ejemplos de código.

Resumen de la versión Go 1.24: mapas Swiss Table, ML-KEM, os.Root y testing/synctest
Visión técnica general de Go 1.24: mapas integrados basados en Swiss Table, crypto/mlkem (FIPS 203), TLS Encrypted Client Hello, runtime.AddCleanup, os.Root y testing/synctest.

Randflake ID: Generación distribuida de identificadores únicos de 64 bits con el cifrado de bloques Sparx64
Generador distribuido de identificadores únicos de 64 bits que combina una marca temporal de 30 bits, un identificador de nodo de 17 bits, un contador local de 17 bits y la cifra de bloques Sparx64 ARX para obtener identificadores no predecibles.

Mejorar la capacidad de respuesta mediante una caché del lado del cliente con Redis
Mejora de la capacidad de respuesta de la API mediante Redis Server Assisted Client Side Cache

Implementación de un visor de imágenes basado en un cuadro de lista para múltiples archivos con Go y Tcl/Tk 9.0
Se implementa un visor de imágenes con interfaz gráfica que permite abrir múltiples archivos de imagen, alternar selecciones y eliminar elementos de la lista, para lo cual se añaden enlaces de comandos Tcl listbox y controladores de eventos virtuales en modernc.org/tk9.0.

Implementación de una GUI en Go Tcl/Tk sin CGo (modernc.org/tk9.0): empaquetado de widgets y renderizado de imágenes
Implementación de la creación de ventanas, el empaquetado de widgets de botón y barra de menús, y la renderización de imágenes SVG/PNG/ICO en Go mediante la biblioteca multiplataforma modernc.org/tk9.0, sin dependencias de CGo.

El ecosistema de Go y OpenAPI
Presentamos las bibliotecas y estrategias que se pueden utilizar en el desarrollo de API basadas en OpenAPI con el lenguaje Go.

Kit inicial de concurrencia en Go
Se presentan diversas herramientas y técnicas para la gestión de la concurrencia en Go, incluyendo goroutines, canales y mutexes.

Por qué Go optó por la devolución explícita de errores y por panic-recover en lugar de lanzar excepciones con try-catch
Se examinan las limitaciones de la estructura try-catch, que transfiere la responsabilidad del manejo de excepciones a lo largo de la pila de llamadas, y se explica el diseño de panic-recover de Go, restringido a los estados no recuperables, junto con el manejo explícito de errores en el punto de llamada.

Construcción de infraestructura de servicios de IA en Go: concurrencia e integración de API
Cómo Go gestiona la orquestación de APIs de modelos fundacionales, las operaciones de E/S de red concurrentes, los pipelines de streaming y el despliegue de servicios nativos de la nube.