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.

Repenser le monorepo Git : une architecture native CAS pour les humains et les agents de codage
Comment construire un monorepo sans démon, natif CAS, sur Git standard, en utilisant des instantanés de trunk sans parent, des références d'espaces de travail isolés, des arbres de fusion en mémoire, des fichiers OWNERS hiérarchiques et une synchronisation de miroirs en O(delta).

gosuda.org/zstd : compression compatible avec DataDog/zstd sans CGO et avec isolation des pannes
CGO_ENABLED=0 Bibliothèque Go Zstandard exécutant la bibliothèque C libzstd 1.5.7 en amont dans un worker à mémoire partagée, avec une API compatible DataDog/zstd, des contextes réutilisables et un traitement par lots en masse.

gosuda.org/sqlite3 : pilote database/sql avec CGO_ENABLED=0 reposant sur l'IPC par mémoire partagée
Pilote SQLite 3.54.1 compatible avec database/sql pour Go, sans CGO (CGO_ENABLED=0), avec isolation des workers en mémoire partagée HQQ, préchargement des lignes par lots de 64 Kio et binaires certifiés SLSA.

HQQ : isoler les bibliothèques C de Go via une mémoire partagée alignée sur les lignes de cache
Environnement d'exécution IPC sans cgo, compilateur IDL (hqq-bindgen) et superviseur de processus vérifié, qui exécutent des bibliothèques natives C11 dans des processus de travail isolés via des anneaux en mémoire partagée.

Schottky : encodage de clés d'octets sans allocation et préservant l'ordre pour Go
Bibliothèque Go sans allocation qui encode des tuples composites en clés d'octets ordonnées par memcmp, avec tri ASC/DESC indépendant, étiquettes de placement des valeurs NULL et bornes de parcours par préfixe.

Portalite : SDK Go léger pour Portal, reposant sur des liaisons multi-relais et un net.Listener standard
Un client Portal léger et une interface en ligne de commande prenant en charge l'interface standard net.Listener de Go, la liaison simultanée à plusieurs relais, le chiffrement de bout en bout (E2EE) et la reprise automatique des sessions.

Go 1.27, ou comment j'ai appris à cesser de m'inquiéter et à aimer les méthodes génériques
Méthodes génériques, encoding/json/v2, un package uuid standard et un détecteur de fuites de goroutines qui fonctionne réellement. Une présentation de Go 1.27 accompagnée d'exemples tous effectivement exécutés.

Analyse de la génération de code assembleur AMD64 pour les conditions (if) en Go et des instructions de branchement
Le présent travail compare le processus par lequel le compilateur Go traduit les structures conditionnelles if-else en instructions de branchement machine AMD64 telles que CMPQ, JGE et JMP, avec le résultat de la génération de code de branchement du compilateur C (-O2).

Structure d'exécution des langages managés et analyse de l'assembleur AMD64 des binaires Go
Ce document compare les modèles d'exécution des langages managés et non managés, et analyse, à partir de l'assemblage AMD64 extrait avec go tool objdump, le mécanisme de vérification de pile et la structure d'appel des fonctions d'exécution (runtime) dans les binaires Go.

Méthodologie de développement AI natif : une circulation bidirectionnelle du contexte au-delà de l'utilisation d'outils
Cet article compare les limites structurelles du développement dépendant de l'IA et de l'utilisation de l'IA comme simple outil, puis définit un processus de développement natif de l'IA qui accumule dans les deux sens l'intention de conception et le contexte organisationnel.

Portal Tunnel : exposer des services localhost via des relais publics décentralisés
Exposez des services HTTP locaux à l'internet public d'une seule commande curl, grâce à des tunnels Portal multi-relais et sans autorisation, sans création de compte ni installation de binaire.

Limites de capacité de canal de Shannon et architecture de communication sémantique (Semantic Communication) fondée sur l'IA
Nous examinons les limites de capacité du canal physique énoncées par le théorème de Shannon-Hartley et traitons de la communication sémantique, qui, à l'aide d'une base de connaissances partagée et d'encodeurs/décodeurs sémantiques, comprime les données transmises en unités de sens plutôt qu'en unités binaires.

Portal : relais ouvert à chiffrement de bout en bout permettant de transmettre les services locaux vers un réseau externe
Cet article décrit l'architecture Portal, qui expose un serveur local à l'internet public via un réseau de relais ouvert chiffré de bout en bout (E2EE), sans adresse IP publique ni configuration d'infrastructure cloud.

Appels système Linux directs en Go pur avec syscall.Syscall et unsafe.Pointer
Invocation directe des appels système du noyau Linux, tels que SYS_SYSINFO, depuis du Go pur à l'aide de structures alignées sur l'ABI, de unsafe.Pointer et du paquet standard syscall, sans cgo.

Any n'est pas Any, mais Any est Any
Ce document analyse en détail le type `any` du langage Go ainsi que sa structure interne `EFace`, et présente les méthodes de traitement dynamique des types au moyen du package `reflect` ainsi que des assertions et des commutateurs de types.

Structure des implémentations FIPS 140-2 et FIPS 140-3 de la bibliothèque cryptographique standard de Go
Cette section analyse les limites de l'intégration avec un fournisseur OpenSSL externe écrit en C, puis examine BoringCrypto (FIPS 140-2), le mode FIPS 140-3 du paquet crypto natif de Go, la vérification Fail-Fast, l'ECDSA couvert (Hedged ECDSA) et la structure du DRBG.

Motif bitmap vif
Des concepts des index bitmap en bases de données au fonctionnement de Roaring Bitmap, jusqu'à son utilisation en Go. Cet exposé examine les optimisations bitmap permettant un traitement efficace des jeux de données volumineux.

Politique et informatique
La politique et l'informatique, deux disciplines en apparence différentes mais qui se ressemblent, examinent comment elles peuvent résoudre des problèmes sociaux et comment le développeur devient un nouveau législateur.

Principe de fonctionnement des goroutines en Go : pile variable de 2 Ko et ordonnanceur GMP de type M:N
Cet article présente la distinction entre concurrence et parallélisme, puis décrit la pile variable initiale de 2 Ko des goroutines, la commutation de contexte au niveau utilisateur, GOMAXPROCS ainsi que le modèle de planification à l'exécution GMP (Goroutine-Machine-Processor).

Serveurs de bases de données et bases de données embarquées : comparaison de l'architecture et des caractéristiques d'E/S
Ce texte compare les bases de données relationnelles (RDBMS) fonctionnant comme processus indépendants avec les bases de données embarquées in-process telles que SQLite, RocksDB, BadgerDB et PebbleDB, sous l'angle de la latence d'E/S des SSD NVMe, de l'isolation des données en architecture MSA et de la structure de déploiement.

Configuration d'un serveur NATS embarqué dans une application Go et structure de communication en processus interne
Cet article traite de la configuration permettant d'exécuter un broker NATS (nats-server/v2) intégré à l'intérieur d'un processus Go, ainsi que de la communication en mémoire fondée sur InProcessConn et de la conception d'interfaces de consommateur définies par l'utilisateur.

Interfaces et embarquement de structures en Go : différences avec l'héritage de classes et conception par composition
Comparaison de l'héritage de classes en Java/C++ et du typage structurel des interfaces en Go, avec explication du patron de composition utilisant l'embedding de structures et la délégation de méthodes à l'aide d'exemples de code.

Cinq caractéristiques de conception du langage Go du point de vue de l'ingénierie des systèmes et du backend
Ce texte présente la philosophie de conception de Go, en mettant l'accent sur la compilation native rapide et les performances d'exécution, sur la bibliothèque standard fonctionnant sans framework (net/http, database/sql), sur le planificateur de goroutines M:N, ainsi que sur la garantie de compatibilité ascendante.

Le moment de détente d'une tasse de thé vert que le runtime de Go nous dérobera, GreenTea GC
Le nouveau GC GreenTea de Go améliore les performances en augmentant l'efficacité du GC pour les petits objets, grâce à une approche fondée sur les spans de mémoire. Nous examinons les limites du GC existant ainsi que les avantages du GC GreenTea.

Réduction du délai de réponse lors du téléversement de fichiers en Go HTTP : implémentation d'une file d'attente de workers asynchrones basée sur les canaux
Cette structure sépare, dans le gestionnaire d'envoi de fichiers net/http, la réception des fichiers temporaires et les opérations de transfert vers les conteneurs Incus en un canal tamponné et un pool de workers basés sur des goroutines, afin de réduire le délai de réponse de l'endpoint.

Analyse des modifications de comportement de encoding/json/v2 dans Go 1.25 et de la couche de compatibilité avec la v1
Comparaison de la correspondance sensible à la casse, des changements de sémantique de omitempty et omitzero, ainsi que de la sérialisation et des options des slices et maps nil dans encoding/json/v2, introduit comme fonctionnalité expérimentale de Go 1.25 (goexperiment.jsonv2).

Injection de variables à la compilation en Go : utilisation de go build -ldflags -X
Ce texte explique comment injecter des valeurs de variables de chaîne Go au moment de la compilation, sans fichier .env externe, en utilisant le drapeau de l'éditeur de liens go build -ldflags "-X" et en spécifiant le chemin du symbole du package.

Gérer les erreurs HTTP de manière moins fastidieuse + RFC7807
Vous trouvez la gestion des erreurs dans une API Go fastidieuse ? Traitez-les de manière plus simple et plus claire grâce à RFC7807.

Comparaison de la conception linguistique dans les environnements de génération de code par LLM : coût d'abstraction et explicitation en Go
Cet article analyse la manière dont le polymorphisme orienté objet, le sucre syntaxique et les arborescences de modules complexes accroissent le coût de l'inférence contextuelle des LLM, et examine pourquoi Go, avec son flot de contrôle explicite et sa syntaxe simple, se prête mieux à la génération de code par l'IA.

Cilium : une amélioration remarquable de la stabilité réseau obtenue grâce à une petite modification du code
Découvrez en détail comment une petite modification de code dans le projet Cilium a considérablement amélioré la fiabilité de la gestion des connexions NAT basée sur LRU.

Essayer de comprendre un peu l'hôte MCP
Il s'agit d'un article visant à faciliter la compréhension du protocole MCP d'Anthropic et de l'hôte MCP (mcphost) implémenté en Go.

Exécuter un serveur Go de manière évolutive avec dotnet Aspire
Comment exécuter des serveurs Go de manière évolutive avec .NET Aspire : exemple de mise à l'échelle horizontale et de configuration automatisée à l'aide du reverse proxy YARP.

Retour d'expérience sur l'utilisation de MLDSA et MLKEM en Go
Découvrez comment utiliser les algorithmes de cryptographie post-quantique MLDSA et MLKEM en Go, avec une présentation des caractéristiques de chaque algorithme et des exemples de code.

Aperçu de la version Go 1.24 : tables de hachage Swiss, ML-KEM, os.Root et testing/synctest
Aperçu technique de Go 1.24 : tables de hachage Swiss Table intégrées aux maps, crypto/mlkem (FIPS 203), TLS Encrypted Client Hello, runtime.AddCleanup, os.Root et testing/synctest.

Randflake ID : génération distribuée d'identifiants uniques de 64 bits avec le chiffrement par blocs Sparx64
Générateur distribué d'identifiants uniques de 64 bits combinant un horodatage de 30 bits, un identifiant de nœud de 17 bits, un compteur local de 17 bits et le chiffrement par bloc Sparx64 ARX pour des identifiants non devinables.

Amélioration de la réactivité grâce à un cache côté client Redis
Amélioration de la réactivité des API grâce au cache côté client assisté par le serveur Redis

Implémentation d'une visionneuse d'images à liste multi-fichiers basée sur Go et Tcl/Tk 9.0
Implémentation d'une visionneuse d'images dotée d'une interface graphique, permettant l'ouverture de plusieurs fichiers image, la commutation de sélection et la suppression d'éléments de liste, par l'ajout de liaisons de commandes Tcl listbox et de gestionnaires d'événements virtuels à modernc.org/tk9.0.

Implémentation d'une interface graphique Tcl/Tk en Go sans CGo (modernc.org/tk9.0) : gestion du placement des widgets et rendu d'images
Mise en œuvre de la création de fenêtres, du placement de widgets de bouton et de barre de menus, ainsi que du rendu d'images SVG, PNG et ICO en Go, à l'aide de la bibliothèque multiplateforme modernc.org/tk9.0, sans dépendance CGo.

L'écosystème Go et OpenAPI
Présentation des bibliothèques et des stratégies utilisables pour le développement d'API basé sur OpenAPI avec le langage Go.

Kit de démarrage sur la concurrence en Go
Présentation de divers outils et techniques pour la gestion de la concurrence en Go, notamment les goroutines, les canaux et les mutex.

Les raisons pour lesquelles Go a choisi le retour explicite d'erreurs et le mécanisme panic-recover plutôt que le lancement d'exceptions par try-catch
Cet article examine les limites de la structure try-catch, qui transfère la responsabilité de la gestion des exceptions le long de la pile d'appels, et présente la conception panic-recover de Go, dont l'usage est restreint aux états irrécupérables, ainsi que la gestion explicite des erreurs au niveau du point d'appel.

Construction d'une infrastructure de services d'IA en Go : concurrence et intégration d'API
Comment Go gère l'orchestration des API de modèles de fondation, les E/S réseau concurrentes, les pipelines de streaming et le déploiement de services cloud-natifs.