# GoSuda > GoSuda is an open-source working group building high-performance networking, storage, runtimes, and developer tooling in Go. - [Home](https://gosuda.org/fr/) - [GitHub Organization](https://github.com/gosuda) - [Full Markdown Corpus (llms-full.txt)](https://gosuda.org/llms-full.txt) - [Agent Discovery Card (.well-known/agent-card.json)](https://gosuda.org/.well-known/agent-card.json) - [RSS Feed](https://gosuda.org/fr/feed.rss) - [Sitemap](https://gosuda.org/fr/sitemap.xml) ## Packages & Projects - [Portal Tunnel : exposer des services localhost via des relais publics décentralisés](https://gosuda.org/fr/blog/posts/make-localhost-public-with-one-curl-—-portal-tunnel-z2f33ae49) ([Markdown](https://gosuda.org/fr/blog/posts/make-localhost-public-with-one-curl-—-portal-tunnel-z2f33ae49.md)): 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. - [HQQ : isoler les bibliothèques C de Go via une mémoire partagée alignée sur les lignes de cache](https://gosuda.org/fr/hqq) ([Markdown](https://gosuda.org/fr/hqq.md)): 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. - [Portal : relais ouvert à chiffrement de bout en bout permettant de transmettre les services locaux vers un réseau externe](https://gosuda.org/fr/portal) ([Markdown](https://gosuda.org/fr/portal.md)): 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. - [Portalite : SDK Go léger pour Portal, reposant sur des liaisons multi-relais et un net.Listener standard](https://gosuda.org/fr/portalite) ([Markdown](https://gosuda.org/fr/portalite.md)): 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. - [Randflake ID : génération distribuée d'identifiants uniques de 64 bits avec le chiffrement par blocs Sparx64](https://gosuda.org/fr/randflake) ([Markdown](https://gosuda.org/fr/randflake.md)): 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. - [Schottky : encodage de clés d'octets sans allocation et préservant l'ordre pour Go](https://gosuda.org/fr/schottky) ([Markdown](https://gosuda.org/fr/schottky.md)): 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. - [gosuda.org/sqlite3 : pilote database/sql avec CGO_ENABLED=0 reposant sur l'IPC par mémoire partagée](https://gosuda.org/fr/sqlite3) ([Markdown](https://gosuda.org/fr/sqlite3.md)): 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. - [gosuda.org/zstd : compression compatible avec DataDog/zstd sans CGO et avec isolation des pannes](https://gosuda.org/fr/zstd) ([Markdown](https://gosuda.org/fr/zstd.md)): 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. ## Blog Posts - [Repenser le Git Monorepo : une architecture CAS-Native pour les humains et les Coding Agents](https://gosuda.org/fr/blog/posts/rethinking-the-git-monorepo-a-cas-native-architecture-for-humans-and-coding-agents-zfd3d7931) ([Markdown](https://gosuda.org/fr/blog/posts/rethinking-the-git-monorepo-a-cas-native-architecture-for-humans-and-coding-agents-zfd3d7931.md)): Comment construire un monorepo sans démon, natif CAS, sur Git standard, à l'aide de snapshots de trunk sans parent, de références d'espaces de travail isolés, d'arbres de fusion en mémoire, de fichiers OWNERS hiérarchiques et d'une synchronisation de miroirs en O(delta). - [Go 1.27, ou comment j'ai appris à cesser de m'inquiéter et à aimer les méthodes génériques](https://gosuda.org/fr/blog/posts/go-1-27-or-how-i-learned-to-stop-worrying-and-love-generic-methods-za800e454) ([Markdown](https://gosuda.org/fr/blog/posts/go-1-27-or-how-i-learned-to-stop-worrying-and-love-generic-methods-za800e454.md)): 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](https://gosuda.org/fr/blog/posts/go-if-statement-analysis-3012d30c) ([Markdown](https://gosuda.org/fr/blog/posts/go-if-statement-analysis-3012d30c.md)): 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](https://gosuda.org/fr/blog/posts/managed-languages-intro-656b7470) ([Markdown](https://gosuda.org/fr/blog/posts/managed-languages-intro-656b7470.md)): 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](https://gosuda.org/fr/blog/posts/ai-native-development-z86704c1a) ([Markdown](https://gosuda.org/fr/blog/posts/ai-native-development-z86704c1a.md)): 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. - [Limites de capacité de canal de Shannon et architecture de communication sémantique (Semantic Communication) fondée sur l'IA](https://gosuda.org/fr/blog/posts/the-next-communication-paradigm-led-by-ai-based-semantic-communication-zc1496ec7) ([Markdown](https://gosuda.org/fr/blog/posts/the-next-communication-paradigm-led-by-ai-based-semantic-communication-zc1496ec7.md)): 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. - [Appels système Linux directs en Go pur avec syscall.Syscall et unsafe.Pointer](https://gosuda.org/fr/blog/posts/go-syscall-is-a-brilliant-replacement-of-low-level-i-o-za50951e1) ([Markdown](https://gosuda.org/fr/blog/posts/go-syscall-is-a-brilliant-replacement-of-low-level-i-o-za50951e1.md)): 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](https://gosuda.org/fr/blog/posts/any-is-not-any-but-any-is-any-z6161856d) ([Markdown](https://gosuda.org/fr/blog/posts/any-is-not-any-but-any-is-any-z6161856d.md)): 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](https://gosuda.org/fr/blog/posts/fips-140-certification-and-golang-z0a59330a) ([Markdown](https://gosuda.org/fr/blog/posts/fips-140-certification-and-golang-z0a59330a.md)): 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](https://gosuda.org/fr/blog/posts/vibrant-bitmap-z1743872f) ([Markdown](https://gosuda.org/fr/blog/posts/vibrant-bitmap-z1743872f.md)): 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](https://gosuda.org/fr/blog/posts/politics-and-computers-zc4a4a358) ([Markdown](https://gosuda.org/fr/blog/posts/politics-and-computers-zc4a4a358.md)): 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](https://gosuda.org/fr/blog/posts/goroutine-basics-z3fbe209e) ([Markdown](https://gosuda.org/fr/blog/posts/goroutine-basics-z3fbe209e.md)): 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](https://gosuda.org/fr/blog/posts/database-servers-and-embedded-databases-zd4cb799f) ([Markdown](https://gosuda.org/fr/blog/posts/database-servers-and-embedded-databases-zd4cb799f.md)): 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](https://gosuda.org/fr/blog/posts/how-embedded-nats-communicate-with-go-application-z36089af0) ([Markdown](https://gosuda.org/fr/blog/posts/how-embedded-nats-communicate-with-go-application-z36089af0.md)): 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](https://gosuda.org/fr/blog/posts/go-interfaces-are-not-inheritance-zd04c1084) ([Markdown](https://gosuda.org/fr/blog/posts/go-interfaces-are-not-inheritance-zd04c1084.md)): 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](https://gosuda.org/fr/blog/posts/why-the-go-language-zdb70b280) ([Markdown](https://gosuda.org/fr/blog/posts/why-the-go-language-zdb70b280.md)): 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](https://gosuda.org/fr/blog/posts/greentea-gc:-the-respite-of-a-cup-of-green-tea-seized-by-the-go-compiler-z72acc3f7) ([Markdown](https://gosuda.org/fr/blog/posts/greentea-gc:-the-respite-of-a-cup-of-green-tea-seized-by-the-go-compiler-z72acc3f7.md)): 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](https://gosuda.org/fr/blog/posts/go-handle-file-upload-with-concurrency-s844ce238) ([Markdown](https://gosuda.org/fr/blog/posts/go-handle-file-upload-with-concurrency-s844ce238.md)): 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](https://gosuda.org/fr/blog/posts/go-1-25-encoding-json-v1-vs-v2-z74a36b08) ([Markdown](https://gosuda.org/fr/blog/posts/go-1-25-encoding-json-v1-vs-v2-z74a36b08.md)): 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](https://gosuda.org/fr/blog/posts/compile-time-variable-injection-of-go-z5420556c) ([Markdown](https://gosuda.org/fr/blog/posts/compile-time-variable-injection-of-go-z5420556c.md)): 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](https://gosuda.org/fr/blog/posts/handling-http-errors-more-conveniently-+-rfc7807-z862df968) ([Markdown](https://gosuda.org/fr/blog/posts/handling-http-errors-more-conveniently-+-rfc7807-z862df968.md)): 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](https://gosuda.org/fr/blog/posts/modern-language-of-the-ai-era-z2d7204f1) ([Markdown](https://gosuda.org/fr/blog/posts/modern-language-of-the-ai-era-z2d7204f1.md)): 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](https://gosuda.org/fr/blog/posts/cilium-story-small-but-effective-improvement-zd5a8e472) ([Markdown](https://gosuda.org/fr/blog/posts/cilium-story-small-but-effective-improvement-zd5a8e472.md)): 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](https://gosuda.org/fr/blog/posts/a-little-understanding-of-mcp-host-zb952aae0) ([Markdown](https://gosuda.org/fr/blog/posts/a-little-understanding-of-mcp-host-zb952aae0.md)): 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](https://gosuda.org/fr/blog/posts/exploring-the-scalable-execution-of-go-servers-in-net-aspire-z42f3b6ee) ([Markdown](https://gosuda.org/fr/blog/posts/exploring-the-scalable-execution-of-go-servers-in-net-aspire-z42f3b6ee.md)): 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](https://gosuda.org/fr/blog/posts/usage-of-mldsa-and-mlkem-in-the-go-language-zb0442110) ([Markdown](https://gosuda.org/fr/blog/posts/usage-of-mldsa-and-mlkem-in-the-go-language-zb0442110.md)): 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](https://gosuda.org/fr/blog/posts/whats-new-in-go-1-24-z83ff24d2) ([Markdown](https://gosuda.org/fr/blog/posts/whats-new-in-go-1-24-z83ff24d2.md)): 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. - [Amélioration de la réactivité grâce à un cache côté client Redis](https://gosuda.org/fr/blog/posts/improving-responsiveness-with-redis-client-side-caching-zb711e502) ([Markdown](https://gosuda.org/fr/blog/posts/improving-responsiveness-with-redis-client-side-caching-zb711e502.md)): 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](https://gosuda.org/fr/blog/posts/creating-a-image-viewer-with-tk-in-go-z279238471Z) ([Markdown](https://gosuda.org/fr/blog/posts/creating-a-image-viewer-with-tk-in-go-z279238471Z.md)): 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](https://gosuda.org/fr/blog/posts/creating-a-gui-with-tk-in-go-z004dd008) ([Markdown](https://gosuda.org/fr/blog/posts/creating-a-gui-with-tk-in-go-z004dd008.md)): 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](https://gosuda.org/fr/blog/posts/go-and-the-openapi-ecosystem-zd5a8e472) ([Markdown](https://gosuda.org/fr/blog/posts/go-and-the-openapi-ecosystem-zd5a8e472.md)): 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](https://gosuda.org/fr/blog/posts/go-concurrency-starter-pack-z221a3399) ([Markdown](https://gosuda.org/fr/blog/posts/go-concurrency-starter-pack-z221a3399.md)): 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](https://gosuda.org/fr/blog/posts/why-doesn-t-go-have-try-catch-zeb312147) ([Markdown](https://gosuda.org/fr/blog/posts/why-doesn-t-go-have-try-catch-zeb312147.md)): 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](https://gosuda.org/fr/blog/posts/go-is-the-ideal-language-for-ai-applications-and-our-plans-to-make-it-even-better-z2f380165) ([Markdown](https://gosuda.org/fr/blog/posts/go-is-the-ideal-language-for-ai-applications-and-our-plans-to-make-it-even-better-z2f380165.md)): 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. ## Localized Indexes - [English (en)](https://gosuda.org/llms.txt) - [Spanish (es)](https://gosuda.org/es/llms.txt) - [Chinese (zh)](https://gosuda.org/zh/llms.txt) - [Korean (ko)](https://gosuda.org/ko/llms.txt) - [Japanese (ja)](https://gosuda.org/ja/llms.txt) - [German (de)](https://gosuda.org/de/llms.txt) - [Russian (ru)](https://gosuda.org/ru/llms.txt) - [French (fr)](https://gosuda.org/fr/llms.txt) - [Dutch (nl)](https://gosuda.org/nl/llms.txt) - [Italian (it)](https://gosuda.org/it/llms.txt) - [Indonesian (id)](https://gosuda.org/id/llms.txt) - [Portuguese (pt)](https://gosuda.org/pt/llms.txt) - [Swedish (sv)](https://gosuda.org/sv/llms.txt) - [Czech (cs)](https://gosuda.org/cs/llms.txt) - [Slovak (sk)](https://gosuda.org/sk/llms.txt) - [Polish (pl)](https://gosuda.org/pl/llms.txt) - [Romanian (ro)](https://gosuda.org/ro/llms.txt) - [Hungarian (hu)](https://gosuda.org/hu/llms.txt) - [Finnish (fi)](https://gosuda.org/fi/llms.txt) - [Turkish (tr)](https://gosuda.org/tr/llms.txt) - [Danish (da)](https://gosuda.org/da/llms.txt) - [Norwegian (no)](https://gosuda.org/no/llms.txt) - [Bulgarian (bg)](https://gosuda.org/bg/llms.txt)