# GoSuda > GoSuda is an open-source working group building high-performance networking, storage, runtimes, and developer tooling in Go. - [Home](https://gosuda.org/) - [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/feed.rss) - [Sitemap](https://gosuda.org/sitemap.xml) ## Packages & Projects - [Portal Tunnel: Expose Localhost Services Over Decentralized Public Relays](https://gosuda.org/blog/posts/make-localhost-public-with-one-curl-—-portal-tunnel-z2f33ae49) ([Markdown](https://gosuda.org/blog/posts/make-localhost-public-with-one-curl-—-portal-tunnel-z2f33ae49.md)): Expose local HTTP services to the public internet with a single curl command over multi-relay, permissionless Portal tunnels without accounts or binary installation. - [HQQ: Isolating C Libraries from Go Over Cache-Line Shared Memory](https://gosuda.org/hqq) ([Markdown](https://gosuda.org/hqq.md)): Zero-cgo IPC runtime, IDL compiler (hqq-bindgen), and verified process supervisor that execute native C11 libraries in isolated worker processes over shared-memory rings. - [Portal: An End-to-End Encrypted Open Relay for Forwarding Local Services to External Networks](https://gosuda.org/portal) ([Markdown](https://gosuda.org/portal.md)): This document describes the Portal architecture, which exposes a local server to the external internet through an end-to-end encrypted (E2EE) open relay network, without requiring a public IP address or cloud infrastructure configuration. - [Portalite: A Lightweight Portal Go SDK with Multi-Relay Binding and Standard net.Listener Support](https://gosuda.org/portalite) ([Markdown](https://gosuda.org/portalite.md)): A lightweight Portal client and CLI that implements the standard Go net.Listener interface and supports simultaneous binding across multiple relays, end-to-end encryption (E2EE), and automatic session recovery. - [Randflake ID: Distributed 64-Bit Unique ID Generation with Sparx64 Block Cipher](https://gosuda.org/randflake) ([Markdown](https://gosuda.org/randflake.md)): Distributed 64-bit unique ID generator combining a 30-bit timestamp, 17-bit node ID, 17-bit local counter, and the Sparx64 ARX block cipher for unguessable IDs. - [Schottky: Zero-Allocation, Order-Preserving Byte-Key Encoding for Go](https://gosuda.org/schottky) ([Markdown](https://gosuda.org/schottky.md)): Zero-allocation Go library that encodes composite tuples into memcmp-ordered byte keys with independent ASC/DESC sorting, NULL placement tags, and prefix-scan bounds. - [gosuda.org/sqlite3: CGO_ENABLED=0 database/sql Driver Over Shared-Memory IPC](https://gosuda.org/sqlite3) ([Markdown](https://gosuda.org/sqlite3.md)): Drop-in database/sql SQLite 3.54.1 driver for Go with CGO_ENABLED=0, HQQ shared-memory worker isolation, 64 KiB batch row prefetching, and SLSA-attested binaries. - [gosuda.org/zstd: Drop-In DataDog/zstd Compression with Zero CGO and Crash Isolation](https://gosuda.org/zstd) ([Markdown](https://gosuda.org/zstd.md)): CGO_ENABLED=0 Go Zstandard library running upstream C libzstd 1.5.7 in a shared-memory worker with a DataDog/zstd-compatible API, reusable contexts, and bulk batching. ## Blog Posts - [Rethinking the Git Monorepo: A CAS-Native Architecture for Humans and Coding Agents](https://gosuda.org/blog/posts/rethinking-the-git-monorepo-a-cas-native-architecture-for-humans-and-coding-agents-zfd3d7931) ([Markdown](https://gosuda.org/blog/posts/rethinking-the-git-monorepo-a-cas-native-architecture-for-humans-and-coding-agents-zfd3d7931.md)): How to build a zero-daemon, CAS-native monorepo on standard Git using parentless trunk snapshots, isolated workspace references, in-memory merge trees, hierarchical OWNERS, and O(delta) mirror synchronization. - [Go 1.27, or How I Learned to Stop Worrying and Love Generic Methods](https://gosuda.org/blog/posts/go-1-27-or-how-i-learned-to-stop-worrying-and-love-generic-methods-za800e454) ([Markdown](https://gosuda.org/blog/posts/go-1-27-or-how-i-learned-to-stop-worrying-and-love-generic-methods-za800e454.md)): Generic methods, encoding/json/v2, a standard uuid package, and a goroutine leak detector that actually works. A tour of Go 1.27 with examples that were all actually run. - [Analysis of AMD64 Assembly Code Generation and Branch Instructions for Go Conditional Statements (if)](https://gosuda.org/blog/posts/go-if-statement-analysis-3012d30c) ([Markdown](https://gosuda.org/blog/posts/go-if-statement-analysis-3012d30c.md)): This article compares the process by which the Go compiler translates if-else conditional statements into AMD64 machine-level branch instructions such as CMPQ, JGE, and JMP with the branch code generation results of the C compiler (-O2). - [Runtime Architecture of Managed Languages and Analysis of Go Binary AMD64 Assembly](https://gosuda.org/blog/posts/managed-languages-intro-656b7470) ([Markdown](https://gosuda.org/blog/posts/managed-languages-intro-656b7470.md)): This paper compares the execution models of managed and unmanaged languages and, through AMD64 assembly extracted with go tool objdump, analyzes the stack check and runtime function call structure of Go binaries. - [AI-Native Development Methodology: Bidirectional Context Circulation Beyond Tool Utilization](https://gosuda.org/blog/posts/ai-native-development-z86704c1a) ([Markdown](https://gosuda.org/blog/posts/ai-native-development-z86704c1a.md)): This paper compares the structural limitations of AI-dependent development and simple tool-utilization stages, and defines an AI-native development process that accumulates design intent and organizational context in both directions. - [Shannon's Channel Capacity Limit and the Architecture of AI-Based Semantic Communication](https://gosuda.org/blog/posts/the-next-communication-paradigm-led-by-ai-based-semantic-communication-zc1496ec7) ([Markdown](https://gosuda.org/blog/posts/the-next-communication-paradigm-led-by-ai-based-semantic-communication-zc1496ec7.md)): This text reviews the physical channel capacity limit of the Shannon-Hartley theorem and addresses semantic communication, which compresses transmitted data in units of meaning rather than bits through a shared knowledge base and semantic encoder/decoder. - [Direct Linux System Calls in Pure Go with syscall.Syscall and unsafe.Pointer](https://gosuda.org/blog/posts/go-syscall-is-a-brilliant-replacement-of-low-level-i-o-za50951e1) ([Markdown](https://gosuda.org/blog/posts/go-syscall-is-a-brilliant-replacement-of-low-level-i-o-za50951e1.md)): Invoking Linux kernel system calls such as SYS_SYSINFO directly from pure Go using ABI-aligned structs, unsafe.Pointer, and the standard syscall package without cgo. - [Any is not Any, but Any is Any](https://gosuda.org/blog/posts/any-is-not-any-but-any-is-any-z6161856d) ([Markdown](https://gosuda.org/blog/posts/any-is-not-any-but-any-is-any-z6161856d.md)): This document provides a detailed analysis of Go's `any` type and its internal `EFace` structure, and explains dynamic type handling methods utilizing the `reflect` package as well as type assertions and type switches. - [Structure of the FIPS 140-2 and FIPS 140-3 Implementations in the Go Standard Cryptographic Library](https://gosuda.org/blog/posts/fips-140-certification-and-golang-z0a59330a) ([Markdown](https://gosuda.org/blog/posts/fips-140-certification-and-golang-z0a59330a.md)): This document analyzes the limitations of integrating external C OpenSSL providers and covers, from BoringCrypto (FIPS 140-2) through the native Go standard crypto package's FIPS 140-3 mode, Fail-Fast validation, Hedged ECDSA, and the DRBG structure. - [Vibrant Bitmap](https://gosuda.org/blog/posts/vibrant-bitmap-z1743872f) ([Markdown](https://gosuda.org/blog/posts/vibrant-bitmap-z1743872f.md)): From the concept of bitmap indexes in databases to the operating principles of Roaring Bitmap and its use in Go. This work explores bitmap optimization for the efficient processing of large-scale datasets. - [Politics and Computers](https://gosuda.org/blog/posts/politics-and-computers-zc4a4a358) ([Markdown](https://gosuda.org/blog/posts/politics-and-computers-zc4a4a358.md)): Politics and computer science, two fields that seem different yet share surprising similarities, examine how they can address social problems and how developers may become the new legislators. - [How Goroutines Work in Go: 2KB Growable Stacks and the M:N GMP Scheduler](https://gosuda.org/blog/posts/goroutine-basics-z3fbe209e) ([Markdown](https://gosuda.org/blog/posts/goroutine-basics-z3fbe209e.md)): This explains the difference between concurrency and parallelism, the 2KB initial growable stack of goroutines, user-level context switching, GOMAXPROCS, and the GMP (Goroutine-Machine-Processor) runtime scheduling model. - [Database Servers and Embedded Databases: A Comparison of Architecture and I/O Characteristics](https://gosuda.org/blog/posts/database-servers-and-embedded-databases-zd4cb799f) ([Markdown](https://gosuda.org/blog/posts/database-servers-and-embedded-databases-zd4cb799f.md)): This paper compares independent process-based RDBMSs with in-process embedded databases such as SQLite, RocksDB, BadgerDB, and PebbleDB from the perspectives of NVMe SSD I/O latency, MSA data isolation, and deployment architecture. - [Embedded NATS Server Configuration and In-Process Communication Architecture in Go Applications](https://gosuda.org/blog/posts/how-embedded-nats-communicate-with-go-application-z36089af0) ([Markdown](https://gosuda.org/blog/posts/how-embedded-nats-communicate-with-go-application-z36089af0.md)): This document covers how to configure and run a NATS broker (nats-server/v2) embedded within a Go process, as well as in-memory communication based on InProcessConn and the design of consumer-defined interfaces. - [Go Interfaces and Struct Embedding: Differences from Class Inheritance and Composition-Based Design](https://gosuda.org/blog/posts/go-interfaces-are-not-inheritance-zd04c1084) ([Markdown](https://gosuda.org/blog/posts/go-interfaces-are-not-inheritance-zd04c1084.md)): This document compares the structural typing of Go interfaces with class inheritance in Java/C++, and explains the Composition pattern using struct embedding and method delegation through code examples. - [Five Design Characteristics of the Go Language from the Perspective of Systems and Backend Engineering](https://gosuda.org/blog/posts/why-the-go-language-zdb70b280) ([Markdown](https://gosuda.org/blog/posts/why-the-go-language-zdb70b280.md)): This document summarizes the design philosophy of Go, focusing on fast native compilation and execution performance, a standard library that operates without frameworks (net/http, database/sql), the M:N goroutine scheduler, and the guarantee of backward compatibility. - [A cup of green tea's leisure that the Go runtime will take away, GreenTea GC](https://gosuda.org/blog/posts/greentea-gc:-the-respite-of-a-cup-of-green-tea-seized-by-the-go-compiler-z72acc3f7) ([Markdown](https://gosuda.org/blog/posts/greentea-gc:-the-respite-of-a-cup-of-green-tea-seized-by-the-go-compiler-z72acc3f7.md)): Go's new GreenTea GC improves performance by enhancing GC efficiency for small objects based on memory spans. We examine the problems of the existing GC and the benefits of the GreenTea GC. - [Reducing Response Latency in Go HTTP File Uploads: Implementing an Asynchronous Worker Queue Based on Channels](https://gosuda.org/blog/posts/go-handle-file-upload-with-concurrency-s844ce238) ([Markdown](https://gosuda.org/blog/posts/go-handle-file-upload-with-concurrency-s844ce238.md)): This structure separates temporary file reception and the Incus container transfer operations in the net/http file upload handler into a buffered channel and a goroutine worker pool, thereby reducing endpoint response latency. - [Analysis of Behavioral Changes in Go 1.25 encoding/json/v2 and the v1 Compatibility Layer](https://gosuda.org/blog/posts/go-1-25-encoding-json-v1-vs-v2-z74a36b08) ([Markdown](https://gosuda.org/blog/posts/go-1-25-encoding-json-v1-vs-v2-z74a36b08.md)): This article compares case-sensitive matching, changes in the semantics of omitempty and omitzero, serialization of nil slices and maps, and the related options of encoding/json/v2, introduced as a experimental feature in Go 1.25 (goexperiment.jsonv2). - [Go Compile-Time Variable Injection: Using go build -ldflags -X](https://gosuda.org/blog/posts/compile-time-variable-injection-of-go-z5420556c) ([Markdown](https://gosuda.org/blog/posts/compile-time-variable-injection-of-go-z5420556c.md)): This document explains how to inject Go string variable values at compile time without an external .env file, by using the go build -ldflags "-X" linker flag and specifying the package symbol path. - [Handling HTTP Errors with Less Hassle + RFC7807](https://gosuda.org/blog/posts/handling-http-errors-more-conveniently-+-rfc7807-z862df968) ([Markdown](https://gosuda.org/blog/posts/handling-http-errors-more-conveniently-+-rfc7807-z862df968.md)): Is error handling in your Go API a hassle? Try handling errors more simply and clearly with RFC 7807. - [Comparing Language Design in LLM Code Generation Environments: Abstraction Costs and Go's Explicitness](https://gosuda.org/blog/posts/modern-language-of-the-ai-era-z2d7204f1) ([Markdown](https://gosuda.org/blog/posts/modern-language-of-the-ai-era-z2d7204f1.md)): Object-oriented polymorphism, syntactic sugar, and complex module trees are analyzed as factors that increase the contextual inference cost of LLMs, and the discussion addresses why Go, with its explicit control flow and simple syntax, is advantageous for AI code generation. - [Cilium Story: The Remarkable Improvement in Network Stability Brought About by a Small Code Change](https://gosuda.org/blog/posts/cilium-story-small-but-effective-improvement-zd5a8e472) ([Markdown](https://gosuda.org/blog/posts/cilium-story-small-but-effective-improvement-zd5a8e472.md)): Learn in detail how a small code change in the Cilium project dramatically improved the stability of LRU-based NAT connection management. - [Getting a Little Familiar with MCP Host](https://gosuda.org/blog/posts/a-little-understanding-of-mcp-host-zb952aae0) ([Markdown](https://gosuda.org/blog/posts/a-little-understanding-of-mcp-host-zb952aae0.md)): This article is intended to help readers understand Anthropic's MCP protocol and the MCP host (mcphost) implemented in Go. - [Running a Scalable Go Server with .NET Aspire](https://gosuda.org/blog/posts/exploring-the-scalable-execution-of-go-servers-in-net-aspire-z42f3b6ee) ([Markdown](https://gosuda.org/blog/posts/exploring-the-scalable-execution-of-go-servers-in-net-aspire-z42f3b6ee.md)): How to Run Go Servers Scalably with .NET Aspire: A Configuration Example for Horizontal Scaling and Automation Using the YARP Reverse Proxy. - [Experiences Using MLDSA and MLKEM in the Go Language](https://gosuda.org/blog/posts/usage-of-mldsa-and-mlkem-in-the-go-language-zb0442110) ([Markdown](https://gosuda.org/blog/posts/usage-of-mldsa-and-mlkem-in-the-go-language-zb0442110.md)): This article explains how to use the post-quantum cryptographic algorithms MLDSA and MLKEM in the Go language, and provides the characteristics of each algorithm along with code examples. - [Go 1.24 Release Overview: Swiss Table Maps, ML-KEM, os.Root, and testing/synctest](https://gosuda.org/blog/posts/whats-new-in-go-1-24-z83ff24d2) ([Markdown](https://gosuda.org/blog/posts/whats-new-in-go-1-24-z83ff24d2.md)): Technical overview of Go 1.24: Swiss Table built-in maps, crypto/mlkem (FIPS 203), TLS Encrypted Client Hello, runtime.AddCleanup, os.Root, and testing/synctest. - [Improving Responsiveness with Redis Client-Side Caching](https://gosuda.org/blog/posts/improving-responsiveness-with-redis-client-side-caching-zb711e502) ([Markdown](https://gosuda.org/blog/posts/improving-responsiveness-with-redis-client-side-caching-zb711e502.md)): Improving API Responsiveness Using Redis Server-Assisted Client-Side Caching - [Implementing a Multi-File Listbox-Based Image Viewer with Go and Tcl/Tk 9.0](https://gosuda.org/blog/posts/creating-a-image-viewer-with-tk-in-go-z279238471Z) ([Markdown](https://gosuda.org/blog/posts/creating-a-image-viewer-with-tk-in-go-z279238471Z.md)): This implementation adds Tcl listbox command bindings and virtual event handlers to modernc.org/tk9.0 to create a GUI image viewer capable of opening multiple image files, switching selections, and deleting list items. - [Implementing a CGo-free Go Tcl/Tk GUI (modernc.org/tk9.0): Widget Packing and Image Rendering](https://gosuda.org/blog/posts/creating-a-gui-with-tk-in-go-z004dd008) ([Markdown](https://gosuda.org/blog/posts/creating-a-gui-with-tk-in-go-z004dd008.md)): Implements window creation, button and menu bar widget packing, and SVG/PNG/ICO image rendering in Go using the cross-platform library modernc.org/tk9.0, which has no CGo dependencies. - [Go and the OpenAPI Ecosystem](https://gosuda.org/blog/posts/go-and-the-openapi-ecosystem-zd5a8e472) ([Markdown](https://gosuda.org/blog/posts/go-and-the-openapi-ecosystem-zd5a8e472.md)): This article introduces libraries and strategies that can be used for developing OpenAPI-based APIs in the Go language. - [Go Concurrency Starter Pack](https://gosuda.org/blog/posts/go-concurrency-starter-pack-z221a3399) ([Markdown](https://gosuda.org/blog/posts/go-concurrency-starter-pack-z221a3399.md)): This article introduces various tools and techniques for managing concurrency in Go, including goroutines, channels, and mutexes. - [Why Go Chose Explicit Error Returns and panic-recover Over try-catch Exception Throwing](https://gosuda.org/blog/posts/why-doesn-t-go-have-try-catch-zeb312147) ([Markdown](https://gosuda.org/blog/posts/why-doesn-t-go-have-try-catch-zeb312147.md)): This section examines the limitations of try-catch structures, which pass exception-handling responsibility up the call stack, and explains Go's design of explicit error handling at the call site, with panic and recover reserved solely for unrecoverable states. - [Building AI Service Infrastructure in Go: Concurrency and API Integration](https://gosuda.org/blog/posts/go-is-the-ideal-language-for-ai-applications-and-our-plans-to-make-it-even-better-z2f380165) ([Markdown](https://gosuda.org/blog/posts/go-is-the-ideal-language-for-ai-applications-and-our-plans-to-make-it-even-better-z2f380165.md)): How Go handles foundation model API orchestration, concurrent network I/O, streaming pipelines, and cloud-native service deployment. ## 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)