go-gtk
1 repo
GTK4 driven from pure Go over purego, CGO=0 — the Linux native-toolkit bridge for go-widgets, sibling of go-macos/objc.
A map of one pure-Go ecosystem — 294 organisations and 637 repositories of libraries that build a desktop, typeset a document, mount a filesystem, boot a machine and run Ruby, with no C anywhere.
CGO_ENABLED=0 throughout
amd64 · arm64 · riscv64 · loong64 · ppc64le · s390x
100% statement coverage as a CI gate
BSD-3-Clause
no exec.Command to a CLIEvery library here is written in Go and compiled with CGO_ENABLED=0.
That is not a stylistic preference: it is what makes one binary cross-compile to six
architectures, run inside a browser as WebAssembly, and boot on bare metal without a libc.
Where a good pure-Go library already exists it is used rather than rewritten; where the only
option was a C library behind cgo, the capability was rebuilt.
The ecosystem is deliberately split into one organisation per domain and one repository per capability, so a program that needs an ext4 reader takes an ext4 reader and not a storage framework. What follows is the whole of it, grouped by what the code does. Counts are the public repositories that hold code — brand, docs and landing repositories are not counted.
One widget toolkit, every surface it paints on, and the platform plumbing a real desktop needs.
go-gtk
1 repoGTK4 driven from pure Go over purego, CGO=0 — the Linux native-toolkit bridge for go-widgets, sibling of go-macos/objc.
go-widgets
19 reposThe widget toolkit and every surface it paints on: the painter seam, MVVM, a declarative skin engine, a terminal back-end, a native window on X11, Wayland, Cocoa and Win32, application lifecycle with a system tray, a real Android APK, and a desktop shell.
go-freedesktop
10 reposfreedesktop.org integration — .desktop entries, icon themes, shared MIME info, application associations, the menu tree, desktop notifications and Secret Service — over an owned X11 protocol core that also serves screen capture and the toolkit's window back-end.
go-icons
6 reposIcon and logo packs as embedded pure-Go SVG data — Simple Icons brand marks, Devicon, Material and Seti file types, vscode-icons, and Iconoir. One repository per pack, so a program embeds the set it draws and not the other five; the drawing itself is go-gfx's `svg` package.
go-thumbnail
1 repoThe freedesktop Thumbnail Managing Standard cache.
go-keyring
1 repoOne secret store over macOS Keychain, Windows Credential Manager and Linux Secret Service — no cgo, no CLI exec.
go-macos
26 reposThe macOS foundation, all of it CGO-free through purego: the shared Objective-C runtime bridge, real AppKit controls embedded in a Go-painted window, Keychain and Touch ID, notifications and menu-bar items, accessibility, global hotkeys, login items and launch agents, IOKit HID, DiskArbitration, hardware audio and video decode, ScreenCaptureKit capture, and virtual displays the desktop extends onto.
go-mswin
3 reposThe Windows foundation: Win32 bindings and WinRT interop on combase — peer of go-macos/objc — plus DXGI Desktop Duplication and GDI screen capture built on them.
wasmdesk
7 reposA desktop in the browser — a Wayland-inspired compositor and window manager, a dock, a login portal, OCI app packaging and a coreutils suite.
The 2D socle everything above draws through, and the pixels and frames it moves.
go-gfx
2 reposThe shared 2D socle: an anti-aliased vector rasteriser, a raster surface, colour, geometry, resampling, and SVG to bitmap.
go-images
2 reposImage processing at scikit-image scope.
go-avkit
1 repoAn audio/video toolkit — MP4/ISO-BMFF and Matroska/WebM demuxing.
go-streamkit
1 repoSite-agnostic transport for streaming media: a retrying, rate-limited HTTP client, an HLS parser and an MPEG-DASH manifest reader.
go-extractors
1 repoA plugin framework for media extractors — standalone plugin executables answer what is at a URL and what can be downloaded from it.
go-xrkit
5 reposXR glasses: head orientation, stereo frame packing, flat, equirectangular and fisheye projection, a 360° screen ribbon, a graded catalogue of what each headset can show — plus a player, a virtual desktop on the ribbon, and Android capture.
Turning a document into pages: fonts, breaking, shaping, TeX, PDF, and one rich-document model.
go-tex
5 reposA TeX engine — mouth and gullet, math mode to SVG, a PDF-figure rasteriser, and a fetcher that gets a document the class files it asks for without redistributing any.
go-typeset
3 reposThe typesetting algorithms on their own, with no TeX vocabulary in the API: Knuth-Plass line breaking, Liang hyphenation, the Unicode bidirectional algorithm.
go-opentype
3 reposThe font format: TrueType/OpenType parsing and anti-aliased rasterisation, a HarfBuzz-lite complex-text shaper, and legible fonts ready to import.
go-synctex
1 repoTeX's SyncTeX — the source-to-PDF correspondence, both ways.
go-pdfkit
12 reposThe PDF stack, both directions: a 1.7 writer with TrueType and CFF subsetting, a reader and renderer, AcroForm and XFA form fields, text and structure extraction, a conformance suite judged against poppler, and a co-editable reader application built on all of it.
go-docutils
2 reposreStructuredText both ways: docutils' core in pure Go — the parser and the doctree the LaTeX and PDF path is built on — and an extractor that renders a Go package's own API documentation as reST to feed it.
go-richdoc
4 reposOne rich-document model, and the converters that read and write it — Markdown, LaTeX and reStructuredText.
go-odf
1 repoOpenDocument Text, in and out of the richdoc model.
go-rtf
1 repoRTF, in and out of the richdoc model.
Reading and writing the formats documents arrive in, and the engines that scan them.
go-commonmark
1 repoStrict CommonMark 0.31.2 to HTML — all 652 spec examples.
go-kramdown
1 repokramdown-flavoured Markdown, as Jekyll uses it.
go-nokogiri
1 repoHTML and XML: parse, query, mutate, serialise.
go-xslt
1 repoXSLT transformation.
go-scss
1 repoA Sass/SCSS compiler with Dart-Sass-compatible output — the engine behind the Ruby sass gem.
go-mustache
1 repoLogic-less Mustache templating, spec-faithful.
go-liquid
1 repoShopify's Liquid template engine, gem-faithful.
go-rouge
1 repoA Rouge/Pygments-class syntax highlighter — per-language lexers, token types, named themes.
go-regexp
1 repoAn Onigmo engine shaped like the standard library's regexp, with the lookaround and backreferences RE2 cannot do.
go-datetime
1 repoA lenient parser for the dates people actually write.
Rendering a page without a browser, and carrying gRPC where gRPC does not go.
go-webengine
3 reposA headless web engine: HTML and CSS laid out and painted to an image, with no Chromium — plus a service that streams those frames to a thin client.
go-browserhttp
2 reposAn http.Client that presents a Chrome TLS fingerprint.
go-lsp-bridge
1 repoA WebSocket-to-stdio bridge for JSON-RPC language-server traffic.
grpc-transports
5 reposgRPC where it is not supposed to go: over SSH, WireGuard, vsock, WebSocket and WebRTC.
Many people, one document, no server deciding who won.
go-crdt
2 reposA replicated text document and the service that carries it between the people editing it — the same merge logic on the server and in the browser, via js/wasm.
go-yjs-relay
1 repoA Yjs y-websocket relay hub, transport-agnostic.
A Ruby virtual machine, its object model, and one organisation per gem it needs.
go-embedded-ruby
1 repoThe Ruby virtual machine — YARV bytecode, the object model, the core library, and the rbgo interpreter.
go-composites
31 reposRuby's numeric tower, collections, time and dates as composition-oriented building blocks: Result-based, Null-Object, never nil.
go-ruby-widgets
3 reposMVVM, widgets and a terminal toolkit, addressable from Ruby.
go-vet-analyzers
2 reposgo vet analyzers that make the ecosystem's invariants a compile-time matter.
Getting the machine's width out of pure Go, on all six 64-bit targets.
go-asmgen
1 repoErgonomic generation of Go-compatible Plan 9 assembly for every 64-bit Go target.
go-simd
22 reposSIMD kernels on all six of Go's 64-bit targets — codecs, hashes, string scans, bitsets, float and int8 dot products.
go-ndarray
1 repoA numpy-shaped n-dimensional array, with GEMM at vecLib parity.
go-fft
1 repoFast Fourier transforms at numpy and scipy accuracy, without FFTW.
Making bytes smaller, sending only what changed, and surviving what is lost.
go-compressions
8 reposLZFSE, LZ4, deflate and BLAKE3, with the CLIs that go with them.
go-deltasync
6 reposDelta transfer: zsync2, rdiff, zchunk, vcdiff, bita — and the one content-defined chunker they all import.
go-erasure
2 reposErasure coding: Reed-Solomon over GF(2^16), and the Mojette transform.
From a block device to a mounted filesystem, without a C library anywhere.
go-volumes
9 reposThe block layer — a device contract, NBD, pools, replicas, S3, an OCI image as a block device, GPT and MBR, and parse-hardening guards.
go-filesystems
20 reposFilesystem-format drivers — ext4, xfs, btrfs, zfs, apfs, ntfs, exfat, fat32, iso9660, squashfs and more — plus UEFI variable management and a format prober. And the other direction: NFSv3, SFTP and WebDAV servers that export any of them, so an image can be mounted by the host rather than only read by a program.
go-diskimages
6 reposDisk-image formats: qcow2, raw, dmg, tart-oci, in either direction.
go-fsctl
6 reposLinux kernel ioctl wrappers — zfs, btrfs, loop, device-mapper, block, copy-on-write clones.
go-fde
4 reposFull-disk encryption: LUKS, APFS, and the plumbing that opens them.
go-encryptions
3 reposThe modes underneath: CCM, XTS, ZFS crypto.
What runs before the kernel, and how you prove what ran.
go-tpm2
8 reposTPM 2.0 end to end: transports, the command layer, EFI_TCG2, measured boot, event-log replay and remote attestation.
go-coff
4 reposPE/COFF for UEFI — an object-to-EFI linker, a signing and conversion CLI, and a self-extracting EFI packer.
go-bootloaders
2 reposGRUB and systemd-boot tooling, composed on the storage, UEFI and TPM stacks rather than reimplementing them.
cloud-boot
7 reposBooting the machine: a TamaGo UEFI payload, a unified kernel image, an init, kernels, ISOs, SEV-SNP.
nano-container-linux
7 reposA minimal container host — OCI initrd and PXE boot, a DNS daemon, an OpenPubKey agent.
Building every dependency from source, signing it, and saying where it came from.
go-pkgx
8 reposA pure-Go pkgx: the package manager, the bottle installer, the bk recipe builder, and the CI factory that publishes signed bottles.
go-attest
2 reposSPDX and CycloneDX SBOMs, SLSA provenance, and Ed25519 signing that is minisign- and cosign-interoperable from one keypair.
go-versions
1 repoLoose, pkgx-compatible semantic versions and ranges, CalVer included.
go-gitsafe
1 repoGuards on what leaves a machine: a global git hook that refuses a credential in a remote URL and a write to the branch pull requests land on, a credential helper that never lets a token reach a command line, and a scope checker that reads a token's powers without printing it.
microVMs, guest drivers, supervision, coordination and the network between them.
openweft
70 reposweft — a Go-native microVM cloud: drivers, network, block storage, HA services, runners, clients, native apps, and the loom editor built on it.
go-virtio
13 reposGuest virtio drivers: net, blk, gpu with virgl and Venus, console, rng, vsock, balloon, fs, sound, input.
go-proc
2 reposA PID-1 subreaper and process supervisor, and the restart state machine that decides when to try again.
go-coord
1 repoCross-host coordination on etcd v3: host liveness, watches, leader election.
go-net-dhcp
1 repoA dependency-free DHCPv4 server library.
go-net-health
1 repoActive health probes — stateless TCP and HTTP checks folded into a rolling verdict.
cloud-pool-managers
1 repoVM pool management.
claimward
6 reposA WireGuard VPN with OIDC: the server, the client, and desktop apps for macOS, Linux and Windows.
The Puppet and Ansible stacks, in Go, without a Ruby or Python runtime.
go-puppet
1 repoThe Puppet language and its catalogue compiler.
go-pcore
1 repoPuppet's Pcore type system: type calculus, parser, value model, assignability lattice.
go-puppetdb
1 repoPuppetDB.
go-puppet-bolt
1 repoBolt — task and plan orchestration over SSH and WinRM.
go-facter
1 repoFact collection.
go-hiera
1 repoHierarchical data lookup.
go-eyaml
1 repoeyaml — encrypted values inside Hiera data.
go-hocon
1 repoHOCON configuration.
go-augeas
1 repoThe Augeas engine: a config tree, path expressions and lenses.
go-ansible
10 reposAnsible: inventory, variable precedence, Jinja2-compatible templating, connection and become plugins, the module protocol, and the playbook engine.
go-remoteexec
1 repoThe layer both orchestrators run commands through: local, SSH and WinRM connections with sudo, su and doas escalation.
Two engines hand-ported to pure Go, one of them onto bare metal.
The one thing this organisation does hold: the tool that generates every page here.
go-desktop
1 repoThe generator. It reads the live GitHub organisation list and reconciles it against a curated classification, then writes the landing configuration, the family pages, the gem list and this profile. The reconciliation is the point: an organisation that holds code but is in no family fails the build, so the index cannot quietly omit something that exists.
The Ruby virtual machine is only useful with a library around it. Each gem it needs is
reimplemented in pure Go in its own go-ruby-* organisation — the standard
library, Rails and its dependencies, the testing stack, the Puppet stack, database drivers,
serialisation formats and template engines. Every one of them is byte-compared against MRI
where a byte comparison is meaningful.
The same conformance standard applies across all 294 organisations, which is why they can be read as one ecosystem rather than a pile of unrelated modules.
CGO_ENABLED=0No cgo, and no shelling out to a command-line tool in place of a library. A dependency is
a Go module or it is written. That is what keeps cross-compilation, js/wasm
and bare-metal targets available at once.
Build and test on amd64, arm64, riscv64, loong64, ppc64le and s390x — native where runners exist, under qemu-user otherwise. s390x is big-endian, which keeps every on-disk and on-wire encoding honest.
A CI gate, error branches included. A skipped test is not a passing one: jobs fail when a toolchain is missing rather than turning green quietly.
Performance claims come with a benchmark against the reference implementation, and correctness claims about a format come with a byte comparison against it. Decoders are fuzzed.
Each organisation publishes a Hugo landing page at <org>.github.io and
versioned MkDocs Material documentation at <org>.github.io/docs/, with
the same brand and a light/dark/system theme toggle.
Every repository, every organisation. Copyright is held by the authors of the organisation it lives in.
These organisation names are reserved and empty. They are listed so the map has
no silent gaps — an empty organisation is not a shipped one.
go-graphdrawing, go-grub, go-quake2, go-quake3, go-sicp, go-ruby-atproto, go-ruby-birdsite, go-ruby-hackernews, go-ruby-instagram, go-ruby-mastodon, go-ruby-newsgroups, go-ruby-syndication, go-ruby-tiktok.
News, social & feeds · 11 organisations
One reader, and a client per source it reads.
go-news-reader1 repoA multi-source news and social aggregator with a go-widgets interface — Reddit, RSS, Hacker News, Usenet, Mastodon, Lemmy, Bluesky and more in one reader.
go-syndication1 repoRSS, Atom and JSON Feed: parse and fetch.
go-newsgroups5 reposUsenet, whole: NNTP, yEnc, Newznab, NZB, PAR2.
go-reddit2 reposA Reddit read client, and a reader built on it.
go-mastodon1 repoA Mastodon read client.
go-lemmy1 repoA Lemmy read client.
go-hackernews1 repoA Hacker News read client.
go-atproto1 repoA Bluesky / AT Protocol read client.
go-birdsite1 repoA best-effort read client for public Twitter/X timelines.
go-instagram1 repoA best-effort read client for public Instagram profiles.
go-tiktok1 repoA best-effort read client for public TikTok profiles.