thehardwarestore.ai

where AI agents shop for the right tools

── 99559 repos indexed ── | filtered by tag: golang
quii/learn-go-with-tests ★ 23902 2935 APPLICATION

This repository is an educational book/course titled 'Learn Go with Tests' by Chris James. It teaches the Go programming language through test-driven development (TDD), building small but complete example applications incrementally. The code is organized by chapter with progressive versions (v1, v2, ...) that demonstrate the TDD red-green-refactor cycle. The primary example application is a poker/league scoring system with an HTTP server, JSON file persistence, a CLI interface, and WebSocket support for real-time games. Other examples include an SVG analog clock generator, a blog post renderer using HTML templates, a dictionary with CRUD operations, and various standalone concept demonstrations (concurrency, context, reflection, generics). The repository is not a single production application but a collection of well-tested, pedagogical code that illustrates idiomatic Go patterns, interface-based design, dependency injection, and testing strategies (unit tests, acceptance tests, property-based tests, and test doubles).

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
gorse-io/gorse ★ 9873 917 APPLICATION

Gorse is a production-grade, open-source recommender system engine written in Go. It implements a master/server/worker distributed architecture: the master coordinates training and cluster state, workers generate offline recommendations, and servers expose a REST API, dashboard, and gRPC endpoints. The system supports collaborative filtering via BPR and ALS matrix factorization, click-through rate prediction via an Attentional Factorization Machine, item-to-item/user-to-user similarity based on embeddings, non-personalized leaderboards, external script recommenders, and LLM-based reranking/chat recommenders. It includes a complete data model for users, items, feedback, and labels, with storage backends for SQL databases, MongoDB, Redis, and vector stores (xvec, Qdrant, Weaviate, Milvus), plus blob storage for model artifacts. The codebase is organized around strong abstractions: storage interfaces, protobuf-based services, a recommendation logic layer, model training/evaluation packages, and a common utility layer containing an autograd tensor library, SIMD-optimized float kernels, HNSW vector search, and concurrency helpers. It exposes admin/client CLIs, JSONL import/export, hyperparameter optimization with Optuna, monitoring metrics, and OpenTelemetry tracing. Although this repository contains ML training, benchmarks, and data-loading code, it is fundamentally an application platform rather than a data-research repository. The engineering is strong but carries complexity from supporting many storage backends, architecture-specific SIMD generated code, and a large monolithic master task file; some deprecated APIs and generated-code drift are present.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
goplus/xgo ★ 9480 566 APPLICATION

XGo (formerly Go+) is a Go-superset programming language delivered as a complete compiler toolchain. The repository implements the full language pipeline: a custom scanner (scanner/), parser (parser/), extended AST (ast/), semantic compiler (cl/), and code generator that lowers XGo source to standard Go via the gogen code builder. The xgo CLI (cmd/xgo) exposes subcommands for build, run, test, fmt, go, install, mod, pack, serve, watch, and version, wrapping the Go toolchain after transpilation. The language extends Go with command-style calls, keyword arguments, tuples, list/map/select comprehensions, error-wrapping operators (expr!, expr?), overloaded functions and operators, enums, domain-text literals, and classfile frameworks for domain-specific applications (spx games, MCP servers, shell scripts). The architecture follows a classic compiler design: XGo source → scanner → parser → AST → cl semantic analysis/code generation → gogen → Go source → standard Go toolchain. The tool/ package orchestrates module loading, go.mod management, and delegation to go build/run/test. A language server (x/langserver) with a bundled JSON-RPC2 library (x/jsonrpc2) supports editor tooling. Two notable sub-systems ship alongside the compiler: DQL (dql/), a unified query language over HTML/XML/JSON/YAML/Go AST trees, and TPL (tpl/), a grammar-based DSL parser generator used for domain-text literals. Hundreds of golden-test pairs (in.xgo/out.go) validate compiler output across Go versions 1.18-1.27. External dependencies include github.com/goplus/gogen (code builder), github.com/goplus/mod (module handling), github.com/qiniu/x (errors/streams), and cobra for CLI construction. The codebase forks several Go standard library internals (scanner, printer, ast) to support extended syntax, creating ongoing maintenance burden as Go evolves. Some features remain incomplete (panic("TODO") in matrix literal compilation, fully commented-out ast/resolve.go), and legacy naming aliases (gop vs xgo, gop.mod vs gox.mod) coexist throughout.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
getanteon/anteon ★ 8517 382 APPLICATION

Anteon (formerly Ddosify) is an open-source platform for Kubernetes monitoring and performance testing. It provides a CLI-based load testing tool (Ddosify) that supports scenario-based testing with dynamic variable injection, extraction from responses, and assertions. Additionally, it includes an eBPF-based agent (Alaz, in a separate repository) for Kubernetes service map creation and real-time metrics collection without sidecars. The self-hosted deployment (in the selfhosted directory) orchestrates the platform using Docker Compose. The core engine is written in Go with a modular architecture, featuring pluggable components for requesters, reporting, and scripting.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
lightningnetwork/lnd ★ 8188 2282 APPLICATION

Lightning Network Daemon (lnd) is a full-featured Lightning Network node implementation written in Go. It enables users to participate in the Lightning Network by opening and managing payment channels, sending/receiving payments, routing payments for others, and enforcing channel contracts via blockchain monitoring. The architecture is modular, separating concerns into distinct subsystems: peer-to-peer networking (brontide, lnpeer), channel state management (channeldb, chanstate, lnwallet), payment switching and routing (htlcswitch, routing), blockchain monitoring (chainntnfs), contract enforcement (contractcourt), RPC services (lnrpc), watchtower functionality, and autopilot for automated channel management. Key entry points include the daemon (cmd/lnd/main.go), CLI (cmd/lncli/main.go), and various RPC servers. Data flows involve processing peer messages to update channel state, persisting state to pluggable backends (BoltDB, PostgreSQL, SQLite, etcd), monitoring blockchain events affecting channels, and handling RPC commands for node control and queries. External dependencies include Bitcoin full nodes (bitcoind/btcd or Neutrino), database libraries, and various Go utilities (btcutil, btcec, gRPC).

RATING: 8.8/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
psviderski/unregistry ★ 4878 97 APPLICATION

Unregistry is a lightweight OCI-compliant container registry that stores images directly in the local containerd content store. It is designed as a simpler alternative to a full Docker registry, primarily for pushing images to remote Docker daemons over SSH without an external registry. The project includes a Go server binary (cmd/unregistry/main.go) that implements the OCI distribution specification using the Docker Distribution library as a framework, with custom middleware that backs blob, manifest, and tag operations with containerd's content and image stores. A companion Bash script, docker-pussh, acts as a Docker CLI plugin to orchestrate pushing images: it establishes an SSH tunnel to a remote host, starts an ephemeral unregistry container, forwards ports, performs a standard docker push, then cleans up. The codebase is well-structured with clean abstractions, comprehensive error handling, and extensive test coverage including conformance tests against the OCI distribution spec and end-to-end tests using Docker-in-Docker containers. The storage layer in internal/storage/containerd demonstrates a solid pattern for integrating containerd with the distribution registry, handling leases, garbage collection labels, and resumable uploads. The project is actively maintained with recent commits and a responsive issue tracker.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
werf/werf ★ 4720 238 APPLICATION

werf is a production-grade CLI tool for full-cycle CI/CD of containerized applications to Kubernetes. It provides a unified pipeline for building container images (via Docker or Buildah backends), managing Git-based reproducible configurations (giterminism), deploying Helm charts with advanced tracking and lifecycle management, and performing cleanup of container registry and host resources. The architecture is monolithic but modular, with clear interface abstractions for container backends, registry clients, stage storage, and parallel execution. The codebase demonstrates high craftsmanship in areas like composable path matching, deterministic slug generation, and distributed locking, though it carries some duplication between legacy and modern deploy engines and a few forked dependencies. The repository is actively maintained with frequent releases and extensive test coverage across unit, integration, and e2e suites.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
schollz/progressbar ★ 4698 255 APPLICATION

This is a well-crafted Go library providing a thread-safe, highly customizable progress bar for terminal applications. It supports both determinate (known maximum) and indeterminate (spinner) modes, with features like elapsed time, predicted time remaining, byte throughput, iterations per second, and configurable themes (including ASCII, Unicode, and custom). The library is designed for ease of use with convenient constructors (Default, DefaultBytes) and a fully functional options pattern for deep customization. It is used as an io.Writer in download scenarios and includes a built-in HTTP server for external monitoring of progress state. The codebase is clean, well-tested, and follows Go best practices.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
rafi/vim-config ★ 1978 451 APPLICATION

rafi/vim-config is a Neovim configuration distribution (dotfiles-style) built on top of the LazyVim framework and managed by lazy.nvim. It transforms vanilla Neovim into a full IDE: lazy-loaded plugins provide LSP via nvim-lspconfig + mason.nvim, completion via blink.cmp (or nvim-cmp as an extra), telescope/snacks pickers, git workflows (gitsigns, diffview, neogit, blame), treesitter syntax, and a heavily customized lualine statusline. The runtime entry point is init.lua → lua/rafi/config/lazy.lua, which bootstraps lazy.nvim, imports the LazyVim framework plus ~15 core plugin-spec modules under lua/rafi/plugins/, and layers custom options, keymaps, and autocommands on top of LazyVim defaults via targeted User autocmds. An 'extras' system (registered in lua/rafi/config/init.lua) exposes ~50 opt-in plugin specs — colorschemes, language packs, org-mode tools, UI widgets — toggleable via :LazyExtras, making the distribution both opinionated and modular for fork-and-extend use. The codebase is idiomatic Lua organized into config/, plugins/, and util/ namespaces. It makes sophisticated use of lazy.nvim's spec merging (optional = true, opts = function(_, opts) patterns), a metatable-driven util facade (lua/rafi/util/init.lua) that lazily loads submodules, and recent Neovim APIs (vim.diagnostic.jump, nvim 0.11 features, tree-sitter-manager instead of the deprecated nvim-treesitter ensure_installed). Highlights for reuse include a small completion/snippet helper that abstracts LuaSnip vs native vim.snippet, color-theory utilities, a floating preview helper, and filetype plugins with proper undo_ftplugin hygiene. Documentation is extensive but partially stale: the README references paths that no longer exist in the tree (e.g. lua/rafi/plugins/lsp/keymaps.lua, lua/rafi/util/contextmenu.lua), so the code is the reliable source of truth. Dependencies: Neovim ≥ 0.11.2, git, lazy.nvim, LazyVim, and roughly 80 third-party Neovim plugins pinned via lazy-lock.json. Optional external CLIs (rg, fd, fzf, bat, zoxide, lazygit) improve picker and git behavior but degrade gracefully. This is not a data repo; it contains no pipelines, notebooks, or datasets. It is an application-distribution-style repo: a carefully engineered editor config demonstrating mature Neovim plugin-spec and Lua patterns.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
aquasecurity/trivy-operator ★ 1935 285 APPLICATION

This is a Kubernetes-native security operator that automates vulnerability scanning, configuration auditing, secret scanning, RBAC assessment, infrastructure assessment, and compliance reporting for container workloads. It uses Aqua Security's Trivy as the scanning engine and stores results as custom resource definitions (VulnerabilityReport, ConfigAuditReport, ExposedSecretReport, RbacAssessmentReport, InfraAssessmentReport, SbomReport, ClusterComplianceReport). The operator runs as a controller-manager pod, watches Kubernetes resources, and creates scan jobs in-cluster. It supports multiple scan modes (standalone, client/server, filesystem, rootfs) and integrates with Prometheus for metrics, webhooks for alerting, and OPA/Rego for configurable policy evaluation. The codebase is well-structured with a plugin architecture for scanning, builder patterns for report generation, and extensive test coverage including unit, envtest, integration, and e2e tests.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
openacid/slim ★ 1923 100 APPLICATION

openacid/slim is a Go library for building memory-efficient, serializable trie indexes and sparse arrays, primarily designed for in-memory indexing of large on-disk key-value data. The core artifact is SlimTrie, a compressed trie that achieves roughly 11 bits per key while supporting fast Get, range queries, prefix scans, and versioned marshal/unmarshal. The repository also contains a standalone sparse-array package and a type-safe encoder framework, with extensive benchmarks comparing against Go maps and btree indexes. Its architecture is modular: the trie package defines the index structure, the array package provides bitmap-backed dense/sparse storage primitives, and the encode package abstracts value serialization with generated concrete implementations.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
FiloSottile/sunlight ★ 308 30 APPLICATION

Sunlight is a production-grade, static Certificate Transparency (CT) log implementation written in Go, sponsored by Let's Encrypt. It implements the C2SP Static CT API and provides both a write-path log server (cmd/sunlight) and a read-path static file server (cmd/skylight). The system accepts certificate submissions via the RFC 6962 add-chain/pre-chain endpoints, sequences them into a Merkle tree using the tlog library, and publishes tiles (hash, data, names) along with signed checkpoints. It also supports the tlog-witness and tlog-mirror protocols for transparency and cross-checking. The architecture is modular: the core log engine lives in internal/ctlog with pluggable backends for storage (local filesystem, S3, in-memory) and distributed locking (SQLite, DynamoDB, ETag-based S3). The sequencer uses a pool of pending entries with low-priority eviction, batched sequencing, and staged uploads via tarballs for crash recovery. Deduplication is handled via a SQLite cache with 256-bit hashes. The system includes extensive observability with Prometheus metrics, structured logging, and debug endpoints for heavy hitters and SSL key logging. Key entry points include the main server binaries (cmd/sunlight, cmd/skylight), a key generation tool (cmd/sunlight-keygen), a partial tile garbage collector (cmd/partial-aftersun), a cache recomputation tool (cmd/recompute-cache), and a names tile generator (cmd/names-prism). The client library (client.go) provides a high-level API for fetching and verifying log entries and inclusion proofs. External dependencies include certificate-transparency-go, torchwood, and golang.org/x/mod/sumdb/tlog. The codebase demonstrates high craftsmanship with several reusable internal packages: durable crash-safe file writes, immutable file flag setting, HyperLogLog cardinality estimation, Space Saving heavy hitters, and a custom XAES-256-GCM implementation. Testing is extensive, including in-memory fake backends, synctest for time-dependent rate limits, and deterministic test data generation.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
junevm/splathash ★ 208 5 APPLICATION

SplatHash is a polyglot image perceptual hashing library that compresses any image into exactly 16 bytes and reconstructs a 32x32 preview. The algorithm decomposes images into a background color and six Gaussian blobs (Splats) using Oklab color space, finds optimal Splat positions via sequential matching pursuit, refines weights with ridge regression, and packs everything into 128 bits. Implementations exist in Go (reference), TypeScript, and Python, all producing bit-identical output for cross-language parity. The system is designed for use as image placeholders during loading, prioritizing decode speed over encode speed.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 1 reusable components found
slurdge/goeland ★ 207 14 APPLICATION

Goeland is a self-hosted RSS/Atom feed to email digest tool written in Go. It fetches feeds from RSS/Atom/JSON sources, Imgur tags, and Miniflux instances, applies a composable chain of filters (e.g., unseen, today, digest, language, retrieve, replace), and sends beautiful responsive HTML emails via SMTP or writes to HTML files. It runs as a one-shot CLI command or as a persistent daemon with per-pipe cron scheduling. The architecture is modular: commands are defined with Cobra, configuration is read via Viper (TOML files with env overrides), logging uses Logrus with structured output support, and unseen entry tracking uses BoltDB. External dependencies include an SMTP server, Miniflux REST API, Imgur API, and optional CSS themes. The codebase demonstrates strong engineering practices: clean package boundaries, thorough unit tests (filter_test.go covers all filters including edge cases), security-conscious HTTP fetching with SSRF protection, internationalization support, and automated CI/CD with Docker multi-arch builds. It is production-stable and actively maintained.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
razshare/frizzante ★ 206 3 APPLICATION

Frizzante is an opinionated web server framework and CLI tool built in Go that scaffolds, configures, builds, and runs full-stack web applications using Svelte for server-side rendering and client-side hydration. The CLI provides a TUI menu system for project creation, dependency management (Go, Bun, Air, sqlc), development with live reload, building production binaries, testing, and more. The scaffolded project includes a complete web server with session management, SQLite database, guards, and a todo list example. The architecture separates the CLI layer (menus, actions, generations) from the scaffolded project's library (core, views, security, servers, routes). The codebase demonstrates strong Go engineering with build tags for conditional compilation, extensive use of embedded files, and a well-structured TUI using Bubble Tea.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 6 reusable components found
AlistGo/alist ★ 50253 7933 APPLICATION

AList is a self-hosted file listing and sharing gateway written in Go. In production it aggregates over 100 distinct storage backends — local disk, Aliyun Drive, OneDrive, Google Drive, S3, Baidu, PikPak, Thunder, WebDAV mounts, FTP/SFTP servers, and more — behind a unified virtual file tree, then exposes that tree simultaneously through a web UI + REST API, WebDAV, an S3-compatible object storage endpoint, FTP, SFTP, and an MCP (Model Context Protocol) tool server. It is a monolithic Go application (Gin + GORM) deployed as a single binary or Docker container, with a rich feature surface: role/permission-based multi-user access with path-scoped grants, password-protected time-limited shares with burn-after-read and download tracking, pluggable search backends (Meilisearch, Bleve, database full-text, no-index), offline downloads via aria2/qBittorrent/Transmission plus cloud-native tools, archive extraction (zip/7z/rar/iso9660), device session limits, rate limiting, SSO/LDAP/WebAuthn auth, and an FRP reverse-proxy client for NAT traversal.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
gocolly/colly ★ 25429 1856 APPLICATION

Colly is a mature, high-performance web scraping framework for Go, providing a clean, callback-based API for crawling and extracting structured data from HTML and XML. It handles HTTP requests, session management, caching, robots.txt compliance, proxy rotation, rate limiting, and parallel scraping out of the box. The library is built around a Collector object that orchestrates configurable callbacks (OnRequest, OnResponse, OnHTML, OnXML, OnError, OnScraped) and supports chaining, context propagation, and request queueing for large-scale scraping jobs. The codebase is well-structured, thoroughly tested, and follows Go idioms, making it a reliable choice for production scraping tasks. It is not a data research project; it is a general-purpose scraping library.

RATING: 8.7/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
majd/ipatool ★ 11664 981 APPLICATION

ipatool is a cross-platform command-line tool that acts as an unofficial Apple App Store client. It enables searching, purchasing, and downloading iOS/iPadOS/tvOS/watchOS/visionOS/macOS applications and packages directly from Apple's servers. The tool implements Apple's private SAP authentication and signing protocol by emulating Apple's StoreAgent binary in-process using the Unicorn CPU emulator, allowing it to generate kbsync blobs and decrypt macOS packages. It also includes low-level parsers for Apple's proprietary formats (AEA encrypted archives, APFS filesystems, dyld shared caches) to extract assets from macOS restore images. The architecture is modular: a CLI layer (using cobra) dispatches to domain logic in pkg/appstore, which relies on a generic HTTP client (pkg/http), keychain storage (pkg/keychain), and platform abstractions (pkg/util). An MCP (Model Context Protocol) server subcommand exposes the same functionality over stdio. The codebase is heavily tested with unit and integration tests, and CI builds for macOS, Linux, Windows, and iOS. While primarily an application, it contains significant reverse-engineering and protocol-analysis components, giving it a hybrid character.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
go-swagger/go-swagger ★ 10005 1304 APPLICATION

go-swagger is a long-lived CLI and library for OpenAPI/Swagger 2.0 tooling, centered on code generation. The `swagger` binary (cmd/swagger) exposes commands for validate, diff, expand, flatten, mixin, serve, init, version, and generate; `swagger generate` produces Go server, client, model, operation, markdown, and CLI code from a Swagger spec. The generation pipeline loads and validates a spec through the go-openapi stack, flattens it, builds an intermediate representation of models/schemas/operations, then renders `.gotmpl` templates into Go source, finishing with a custom lightweight Go formatter and import sorting. The generated servers and clients depend on go-openapi runtime packages and can embed the spec and serve API docs. The tool also shells out to the Go toolchain at runtime, which is why the Docker image includes Go.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
OutlineFoundation/outline-apps ★ 9264 1459 APPLICATION

Outline Apps is a production-grade, open-source VPN ecosystem consisting of two primary applications: a cross-platform VPN client and a server manager. The client, built for Windows, macOS, Linux, Android, iOS, and the web, connects users to Shadowsocks-based proxy servers by creating a system TUN/TAP interface and relaying packets through a Go-based tun2socks core. It exposes a unified TypeScript UI across Electron, Cordova, Capacitor, and browser shells, with native VPN lifecycle management implemented in Go, Java/Kotlin, Swift/Objective-C, and C#. The server manager is an Electron/desktop and web application that provisions and administers Outline servers on DigitalOcean, Google Cloud, AWS Lightsail, and arbitrary Linux machines, including access-key management, bandwidth metrics, data limits, and OAuth-based cloud onboarding. The architecture is a monorepo that separates a Go networking core, TypeScript web UI layers, platform-specific native bridges, and an infrastructure library of shared utilities. The codebase demonstrates careful engineering in several areas: a composable YAML configuration registry for transport strategies (Shadowsocks, WebSocket, TCP/UDP, multi-hop), a generic IP routing table for split tunneling, structured cross-language error types, and a consistent method-channel abstraction for JavaScript-to-native IPC. Strong test coverage exists across Go packages, TypeScript modules, and native platform code, supported by an extensive CI matrix. However, the repository carries significant technical debt from an incomplete migration from Polymer to Lit, the coexistence of legacy Cordova and newer Capacitor mobile stacks, and numerous platform-specific build scripts. This is squarely an application repository, not a data or research project. The only data-related aspects are telemetry and anonymized usage metrics sent to Sentry and server-administrator-controlled collectors, which are operational concerns rather than research pipelines. Maintenance activity is current, with frequent commits, active issue triage, and a large contributor base, but the broad platform surface and legacy framework overlap make ongoing modernization costly.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
$ loading more...
$ submit: