thehardwarestore.ai

where AI agents shop for the right tools

── 99468 repos indexed ── | filtered by tag: golang
uber-go/zap ★ 24665 1570 APPLICATION

Uber-go/zap is a high-performance, structured logging library for Go. It provides two primary logger types: the zero-allocation, reflection-free Logger for hot-path usage and the ergonomic SugaredLogger for printf-style logging. The library emphasizes minimal allocations through object pooling, lazy field evaluation, and efficient encoders (JSON and console). It includes advanced features like sampling, dynamic level adjustment via AtomicLevel, hook systems for extensibility, and integration with testing, gRPC, and standard library. The architecture is modular, separating public API (zap), core implementation (zapcore), testing utilities (zaptest), and experimental features (exp).

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
tidwall/tile38 ★ 9741 621 APPLICATION

Tile38 is an in-memory geolocation data store, spatial index, and realtime geofencing server written in Go. It provides a Redis-compatible interface (RESP, HTTP, WebSocket, Telnet) for storing and querying geospatial objects (points, GeoJSON, bounding boxes, geohashes, tiles) with commands like SET, GET, NEARBY, WITHIN, INTERSECTS, and SCAN. The server supports leader/follower replication, AOF persistence, Lua scripting, and realtime geofencing via webhooks, pub/sub channels, and live connections. Its architecture is a single-binary server with a modular internal structure: a collection layer combining B-tree and R-tree indexing, a binary-encoded object and field storage for memory efficiency, a pluggable endpoint system for webhook delivery (HTTP, Kafka, MQTT, NATS, AMQP, SQS, etc.), and a custom protocol multiplexer. The codebase demonstrates high craftsmanship with reusable components like the collection data structure, glob matching, binary field lists, and endpoint manager, though some areas show signs of organic growth (e.g., large server.go, deprecated flags).

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
highlight/highlight ★ 9380 689 APPLICATION

highlight.io is an open-source, full-stack observability platform that provides session replay, error monitoring, logging, distributed tracing, and metrics dashboards. The system is architected as a monorepo with a Go backend (serving GraphQL APIs via gqlgen), a React/TypeScript frontend (using Vite, Apollo Client, and a custom UI component library), and SDKs for over a dozen languages and frameworks (JavaScript/TypeScript, Go, Python, Ruby, Java, Rust, Elixir, .NET, etc.). Data is ingested via OpenTelemetry (OTLP) and custom SDKs, processed through Kafka queues, stored in ClickHouse for analytics and PostgreSQL for relational data, with Redis caching and S3 for session replay assets. The platform includes alerting (Slack, Discord, Microsoft Teams, webhooks), integrations with GitHub, Jira, Linear, Vercel, and more, as well as AI-powered features like session insights and error grouping. The primary entry points are the frontend SPA (routed via React Router) and the backend GraphQL endpoints (private-graph for authenticated users, public-graph for data ingestion). Key data flows include: browser SDK capturing session events and errors → public-graph → Kafka → ClickHouse/Postgres; server SDKs sending logs/traces/metrics via OTLP → OpenTelemetry collector → ClickHouse; and background workers (Lambda functions) for digests, session exports, and alert evaluations. The system is designed for both cloud-hosted and self-hosted deployments (Docker Compose, AWS ECS). While primarily an application, the repository contains significant data engineering components: ClickHouse materialized views for aggregations, Kafka for stream processing, and custom query parsing (ANTLR grammar) for search across logs, traces, and sessions. The codebase demonstrates high craftsmanship with a well-structured monorepo, extensive testing (Go unit tests, e2e tests across frameworks), and a reusable UI component library. However, the large number of SDKs and integrations introduces maintenance complexity, and some legacy patterns (e.g., coexistence of old and new dev tools) indicate ongoing refactoring.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
golang-jwt/jwt ★ 9239 452 APPLICATION

This is the official Go implementation of JSON Web Tokens (JWT), currently at v5. It provides a comprehensive library for creating, signing, parsing, and validating JWTs. The core package implements all standard JWT claims (RegisteredClaims and MapClaims), multiple signing algorithms (HMAC-SHA, RSA, RSA-PSS, ECDSA, Ed25519), and a flexible parser with functional options for configuration (e.g., allowed algorithms, leeway, audience/issuer/subject validation). The library also includes a `request` subpackage for extracting tokens from HTTP requests via headers or form/query parameters, and a `cmd/jwt` CLI tool for debugging and batch operations. Architecturally, it follows a clean separation of concerns: signing methods implement a common `SigningMethod` interface, claims implement a getter-based `Claims` interface, and validation is handled by a stand-alone `Validator` struct that can be used independently of parsing. The code is well-tested, uses only the Go standard library (no third-party dependencies), and follows modern Go idioms like functional options and error wrapping (Go 1.20+). It is actively maintained with CI, linting, CodeQL, and spell-check workflows.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
hashicorp/raft ★ 9146 1096 APPLICATION

hashicorp/raft is an embedded Go library implementing the Raft consensus algorithm for production distributed systems. In operation it manages a replicated log across a cluster: it performs leader election with pre-vote and leadership transfer extensions, replicates log entries from leader to followers with a quorum-based commit rule, snapshots and restores the replicated state machine, and handles cluster membership changes (voters, nonvoters, staging servers) via log-based configuration entries. It is the consensus engine embedded in HashiCorp Consul, Nomad, and Vault. There is no main package; it is consumed as a library through api.go entry points such as NewRaft, BootstrapCluster, RecoverCluster, Apply, AddVoter, RemoveServer, and LeadershipTransfer. Architecturally it is an interface-driven library: consumers plug in an FSM, LogStore, StableStore, SnapshotStore, and Transport. The core state machine lives in raft.go (runFollower/runCandidate/runLeader, processRPC), replication is handled by replication.go, quorum commit tracking by commitment.go, and a Future-based async pattern wraps all public API calls. The network transport (net_transport.go) abstracts any StreamLayer with connection pooling, FSM pipelining, and a heartbeat fast-path; in-memory stores and transports are provided for testing and embedding. The data flow is: Apply enqueues a log future, the leader appends it, replication sends AppendEntries to peers, commitment.go advances the commit index once a quorum matches, and a dedicated runFSM loop applies committed entries to the FSM. Snapshots are periodically written and shipped to lagging followers via InstallSnapshot. External runtime dependencies are deliberately small: go-hclog for logging, go-msgpack/v2 for wire encoding, and go-metrics (the deprecated armon implementation by default, with hashicorp/go-metrics opt-in behind a build tag). The repository also contains a significant verification wing: a fuzzy/ fault-injection cluster framework that exercises partitions, slow voters, membership churn, and leadership transfer while verifying FSM/log consistency, plus a raft-compat/ package that runs rolling-upgrade and pre-vote migration tests against a pinned older version. This gives the repo a hybrid character of production library plus research-grade protocol verification harness, but the dominant identity is a reusable application library. The project is actively maintained: commits land frequently (last commit 2026-10-12), CI runs via GitHub Actions, dependabot is enabled with zero alerts, and issues are triaged (58 open). Technical drift is medium: legacy protocol versions 0/1 and deprecated AddPeer/RemovePeer/peers.json paths are retained for backward compatibility, the default metrics dependency (armon/go-metrics) is deprecated, and the README/Makefile lag reality (README claims Go 1.16 while go.mod requires Go 1.25, and the Makefile pins golangci-lint v1.19.0 which is very old). These are compatibility burdens and documentation lag rather than rot; the core protocol code is current and well-tested.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
maxence-charriere/go-app ★ 8969 405 APPLICATION

go-app is a Go framework for building progressive web applications entirely in Go via WebAssembly. The core package pkg/app implements a declarative component model (Composer/Compo) with lifecycle hooks, client-side routing, state management with observers and persistence, server-side pre-rendering, and a full PWA HTTP handler that serves the app shell, service worker, manifest, and static resources. The docs/ directory is itself a production go-app PWA that dogfoods the framework; docs/src contains the documentation site source code, and docs/web/documents contains the markdown content rendered at runtime by the wasm binary. Architecturally, the repository is a layered Go library rather than a monolith or microservice. pkg/app contains the runtime engine (engine.go, node.go, state.go, http.go) and uses build tags to separate server-side resource/HTTP handling from client-side wasm UI execution. pkg/cli is a struct-tag-driven CLI and environment configuration loader, pkg/cache provides reusable LRU and expiring cache implementations, pkg/errors adds typed and tagged error wrapping, and pkg/logs and pkg/analytics provide optional support utilities. Code generation in pkg/app/gen/html.go produces the strongly typed HTML element API and its generated tests. The primary data flow begins with Go component state and user events, which are dispatched through the engine and Context API to update the DOM via the node manager. State mutations can be persisted to localStorage, encrypted, and broadcast across browser tabs. On the server side, the Handler serves pre-rendered HTML, resolves static resources (local dirs, remote buckets, GitHub Pages), and caches proxied resources. External dependencies include Go modules for webpush, markdown parsing, UUID, and testing, plus browser APIs and Go's wasm_exec.js glue. There are no data pipelines, notebooks, or research artifacts; this is a pure application/framework repository.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
appleboy/gorush ★ 8781 886 APPLICATION

Gorush is a push notification microserver written in Go that delivers notifications to iOS (APNS), Android (FCM), and Huawei (HMS) devices. It exposes both an HTTP REST API (built with Gin) and a gRPC interface for high-performance integration. The system is designed for production use with configurable queue backends (local in-memory, NSQ, NATS, Redis), multiple workers, and pluggable statistics storage (memory, Redis, BoltDB, BuntDB, LevelDB, BadgerDB). It supports concurrent iOS push limiting, automatic retry on failure, feedback webhooks for asynchronous error reporting, and Prometheus metrics for monitoring. The architecture follows a clean producer-consumer pattern: incoming push requests are validated and enqueued, then processed asynchronously by workers that dispatch to platform-specific push services. The codebase is well-structured with clear separation of concerns across packages (app/, config/, core/, notify/, router/, rpc/, storage/, logx/, metric/, status/). It includes comprehensive test coverage, CI/CD pipelines, Docker/Kubernetes/AWS Lambda deployment support, and security scanning. The configuration system uses Viper with YAML files and environment variable overrides, with built-in validation and sensitive field redaction for safe API exposure.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
imroc/req ★ 4866 414 APPLICATION

This repository is `imroc/req`, a feature-rich, production-grade HTTP client library for Go (version 3). It provides a high-level fluent API for building and executing HTTP requests with support for HTTP/1.1, HTTP/2, and HTTP/3 (via QUIC). Key capabilities include connection pooling, automatic retries with configurable backoff, redirect policies, request/response middleware, TLS fingerprint impersonation (mimicking Chrome, Firefox, Safari), SOCKS4/4a/5 proxying, compression (gzip, deflate, brotli, zstd), response body auto-decode (charset detection), file upload/download with progress callbacks, parallel downloading, and extensive debugging via request/response dump and trace. The library is built on top of Go's `net/http` transport but extends it significantly with custom implementations for HTTP/2 frames, HTTP/3, and SOCKS. It is designed for both simple API calls and complex integrations, as demonstrated by included examples for OpenTelemetry tracing and GitHub API usage. The codebase is well-tested and actively maintained, targeting recent Go versions (1.25+). While primarily an HTTP client library, it includes self-contained utility packages for charset detection, SOCKS proxy, and compression that could be reused independently.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
hashicorp/consul-template ★ 4822 804 APPLICATION

consul-template is a HashiCorp-maintained daemon that renders filesystem templates using data from Consul, Vault, and Nomad. It watches template files, fetches dependency data via blocking queries or polling, then atomically writes rendered output and optionally executes a command (e.g., restart a service) on changes. The architecture is a single binary CLI with a manager that orchestrates dependency fetching (via a watcher), template execution (with a rich function library), and child process supervision. It supports multiple modes including once, de-duplication across instances, and exec. The code is well-structured with clear separation into packages: config, dependency, template, renderer, child, watch, manager, and logging. Each package implements reusable patterns (e.g., config copy/merge/finalize, dependency interface, atomic file writer, process manager). The tool is heavily tested with integration tests against real Consul/Vault/Nomad instances. It is actively maintained and widely used in production for dynamic configuration generation.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
gabriel-vasile/mimetype ★ 2015 202 APPLICATION

This is a Go library for detecting the MIME type of files using magic number signatures. It implements a hierarchical detection tree rooted at 'application/octet-stream', allowing precise identification of over 200 file formats without any external dependencies. The library provides three detection entry points (byte slice, reader, file path) and supports concurrency via atomic and mutex locks. It includes custom parsers for CSV, JSON, OLE2/CDF, and MP3 frames, all optimized for performance and zero-copy where possible. The codebase is extensively tested with unit tests, fuzzing, and benchmarks, and is actively maintained with CI/CD, code scanning, and dependency automation. It is a standalone library with no runtime dependencies beyond the Go standard library.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
authorizerdev/authorizer ★ 1997 211 APPLICATION

Authorizer is a self-hosted, production-grade authentication and authorization server written in Go. It implements OAuth 2.0 / OIDC, SAML IdP/SP, SCIM 2.0, WebAuthn/passkeys, TOTP, email/SMS OTP, and fine-grained authorization via an embedded OpenFGA engine. The architecture is transport-agnostic: a shared service layer (internal/service) is called by GraphQL resolvers, gRPC handlers, and HTTP handlers (Gin). It supports multiple storage backends (SQL, MongoDB, Cassandra, DynamoDB, Couchbase, ArangoDB) via a unified storage.Provider interface, plus Redis and in-memory stores for sessions and caching. The system includes a React admin dashboard, an end-user login SPA, and an MCP (Model Context Protocol) server for AI tool exposure. Security is a primary focus, with extensive regression tests for CVEs, SSRF protection, constant-time comparisons, and audit logging.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
ebitengine/oto ★ 1964 153 APPLICATION

oto is a low-level cross-platform audio playback library for Go. It exposes a small API centered around a Context (representing an audio output device) and Player objects (representing audio sources read from arbitrary io.Readers). The production architecture is a library with a clean platform abstraction: each operating system has a driver implementation that receives mixed float32 samples from a central multiplexer and pushes them to the native audio stack. Entry points are NewContext and NewPlayer in the root package, while the real mixing engine lives in internal/mux. The data flow is straightforward: user audio data enters via io.Reader sources, each Player manages buffering, volume, seek, pause, and resume, and the internal mux combines all active players into a single float32 stream. Platform drivers then submit that stream to WASAPI/WinMM on Windows, PulseAudio/ALSA on Unix, AudioQueue on macOS/iOS, Oboe (via cgo) on Android, or WebAudio on JavaScript. The code uses dynamic loading via purego on several platforms, COM for Windows audio, and a fully vendored copy of Google's Oboe C++ library for Android low-latency output. The codebase is well-engineered for a portable audio library. It demonstrates robust fallback chains (e.g., WASAPI to WinMM, PulseAudio to ALSA), exponential backoff for transient device errors, and careful thread-safety across driver callbacks and user API calls. It is an application library, not a data/research repository. Maintenance is active, and the main drift risk is the large vendored Oboe dependency and the breadth of platform-specific backends, but current code is up to date and heavily used by the Ebitengine ecosystem.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
mxpv/podsync ★ 1956 313 APPLICATION

Podsync is a Go-based service that converts video/audio content from YouTube, Vimeo, SoundCloud, and Twitch into podcast RSS feeds. It downloads media via yt-dlp, stores metadata in BadgerDB, and serves feeds via an HTTP server. The architecture is modular: platform-specific builders (pkg/builder/) query APIs to discover episodes, a downloader (pkg/ytdl/) handles media retrieval, and a feed generator (pkg/feed/) produces iTunes-compatible RSS and OPML. The system supports cron-based scheduling, episode filtering by regex/duration/age, cleanup policies, API key rotation, and hooks for custom workflows. It runs as a standalone binary or Docker container with local or S3 storage.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
gsamokovarov/jump ★ 1945 65 APPLICATION

Jump is a single-binary Go CLI for fuzzy directory navigation, in the family of autojump/z/zoxide. It integrates with bash, zsh, fish, PowerShell, and Nushell by emitting a shell function (default `j`) that hooks PWD changes and calls `jump chdir`, which persists a scored database of visited directories as JSON files under ~/.jump or $XDG_CONFIG_HOME/jump. When the user types `j wc`, the shell function invokes `jump cd wc`, which ranks all entries by longest-common-subsequence fuzzy match against a cleverly normalized path (basename-only unless separators are given, case-sensitive when any capital letter is typed) and prints the best path for the shell to cd into. The tool also supports pins, relative jumps, repo-root-based mode via `j .`, reverse jumps via an empty term, stale-entry cleanup, and exact-match proximity heuristics. The codebase is cleanly layered: cli (argument parsing and command dispatch), cmd (command implementations), config (an interface with file- and in-memory implementations over atomic JSON persistence), scoring (frequency+recency weighted ranking and fuzzy sort), fuzzy (LCS algorithm and path normalizer), importer (parsers for autojump.txt, z's .z file, and zoxide's binary db.zo), and shell (Go-embedded integration scripts compiled via text/template). Everything is local files; there is no daemon, server, or network dependency. Test coverage is thorough across all packages, including adversarial importer tests for truncated, oversized, and corrupt zoxide databases and shell template compilation tests. Craftsmanship is strong: the atomic file helper, LCS implementation, path normalizer, and zoxide binary parser are genuinely reusable modules. Minor blemishes include a global command registry, duplicated version constants (0.67.0 in cmd/version.go vs 0.69.0 in the Makefile), a leftover defunct .travis.yml CI config, and a copy-paste error in the settings error message (--preserve validation prints 'slash, ignore' instead of 'true, false'). Overall this is a mature, well-maintained developer tool with an elegant core search/scoring design.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
aarzilli/nucular ★ 985 44 APPLICATION

Nucular is an immediate-mode GUI library for Go, ported from the C library nuklear. It provides a widget toolkit for building desktop applications with support for multiple backends (gio, shiny) via build tags. The library handles window management, input processing, layout, styling, and rendering. Key features include a flexible styling system, cross-platform clipboard integration, rich text editing, and performance-optimized rendering paths using SIMD instructions. Examples demonstrate usage patterns for counters, demos, and rich text editors.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
houqp/sqlvet ★ 500 29 APPLICATION

Sqlvet is a static analysis CLI tool for Go projects that scans raw SQL queries embedded in Go source code to detect potential runtime errors at build time. It uses Go's SSA (Static Single Assignment) representation and call graph analysis to trace SQL query strings through function calls, handling common patterns like string concatenation, functions returning query strings, and pass-through functions like sqlx.Rebind. Extracted queries are parsed with a PostgreSQL grammar (via pg_query_go) to validate syntax, table/column names against a schema, and detect unsafe dynamic SQL that could lead to injection. The tool supports custom SQL function matchers via TOML configuration, allowing users to extend analysis to their own wrapper libraries. The architecture is a single Go binary with modular packages for configuration, schema parsing, query extraction, and SQL validation, with comprehensive test coverage including integration tests using real Go packages.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
likexian/whois ★ 495 92 APPLICATION

Whois is a Go library and command-line tool for performing WHOIS queries on domain names, IP addresses (IPv4 and IPv6), and ASNs. The library handles the complexity of WHOIS referral chains, server-specific quirks (such as those for ARIN and GoDaddy), and provides configurable options for timeout, dialer (for proxy support), and referral control. The CLI tool provides a user-friendly interface for querying WHOIS information and optionally outputting parsed JSON results using the whois-parser package. The project is actively maintained with regular commits, CI/CD workflows, and versioned releases.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 1 reusable components found
antchfx/xmlquery ★ 488 95 APPLICATION

xmlquery is a Go library for querying XML documents using XPath expressions. It provides functions to parse XML from various sources (string, file, URL, etc.), execute XPath queries, and manipulate the resulting node tree. The library features a caching mechanism for compiled XPath expressions to improve query performance and supports streaming parsing for large XML files to minimize memory usage. The architecture is modular, with separate concerns for parsing, querying, and node manipulation, and it relies on external dependencies for XPath expression handling and LRU caching.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
go-gitea/gitea ★ 58284 7213 APPLICATION

Gitea is a self-hosted Git service providing a full DevOps platform including repository hosting, issue tracking, pull requests, wiki, CI/CD (Actions), package registry, and more. The architecture is a monolithic Go web application with a Vue.js frontend, using a SQL database (MySQL, PostgreSQL, SQLite, MSSQL) and supporting various storage backends (local, S3, Azure). Key entry points are the web server (port 3000), SSH server (port 22), and CLI commands for administration. Data flows involve Git operations, webhook notifications, and background job queues. External dependencies include Git, a database, and optional services like Redis, Elasticsearch, and object storage. The codebase is well-structured with extensive testing, but carries some technical debt from a long migration history and dual Git backends.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
micro-editor/micro ★ 29661 1382 APPLICATION

Micro is a terminal-based text editor written in Go, designed to be intuitive and feature-rich. It provides a full editing experience with multiple cursors, tabs, splits, syntax highlighting, undo/redo, search/replace, autocomplete, and a built-in command bar. The architecture follows a modular design with clear separation of concerns: the `internal/action` package handles keybindings and event dispatching via a trie-based key tree; `internal/buffer` manages text buffers using an efficient line array and an event-driven undo stack; `internal/display` renders the editor UI through a window abstraction that supports soft wrapping and status lines; and `internal/screen` wraps the tcell library for terminal I/O. The editor supports Lua-based plugins that hook into lifecycle events and expose Go standard library packages, enabling extensibility without recompilation. External dependencies include tcell (terminal control), gopher-lua (scripting), go-diff (diff computation), and several forked libraries for JSON5 parsing and shell quoting. The main entry point is `cmd/micro/micro.go`, which parses CLI flags, initializes configuration, loads plugins, and runs the event loop. Data flows primarily involve file I/O (reading/writing buffers), terminal input events (keyboard/mouse), and plugin callbacks. The codebase is well-tested with unit tests, generated buffer tests from VSCode model tests, and CI pipelines across platforms.

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