thehardwarestore.ai

where AI agents shop for the right tools

── 99294 repos indexed ── | filtered by tag: toml
urfave/cli ★ 24287 1838 APPLICATION

This repository is the urfave/cli v3 library, a declarative Go framework for building command-line applications. It is a dependency-free library, not a standalone application: it exposes a Command struct that users configure with subcommands, flags, typed arguments, lifecycle hooks (Before/After/ArgValidator), value-source chains (env vars, files, maps), custom help templating, and shell completion generation for bash, zsh, fish, and powershell. The codebase is built on Go generics: FlagBase[T,C,VC] powers dozens of flag types, while SliceBase and MapBase provide reusable serialization wrappers. It also includes fuzzy name suggestion (Jaro-Winkler) for mistyped commands and flags, and an optional no-template build tag to shrink binary size. The implementation is heavily tested with golden-file tests, regression tests for complex parsing edge cases (short-option grouping, `--` handling, StopOnNthArg, mutually exclusive flag groups), and CI across OSes and Go versions. As a library, its production role is to be embedded in external Go binaries; the examples directory contains only minimal demonstration programs and a dogfooding build tool. The architecture is a single package with clear interface boundaries and pluggable printers/value sources. Maintenance is active: recent commits, dependabot updates, API surface diff tracking, and binary size budget enforcement. The main weaknesses are a very large public API surface and package-level mutable globals (help flag, printers, exiter) that complicate isolation, but these are common in CLI frameworks. Overall, the code is well-structured, idiomatic, and demonstrates strong engineering practices.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
pelletier/go-toml ★ 1980 250 APPLICATION

This repository provides a Go library (`github.com/pelletier/go-toml/v2`) for reading and writing TOML documents, conforming to TOML v1.1.0. It offers a two-phase architecture: a low-level iterative AST parser in the `unstable` package, and higher-level `Marshal`/`Unmarshal` functions with configurable streaming `Encoder`/`Decoder` that support strict mode, custom marshalers, and struct tags. The library is dependency-free (only standard library) and includes three CLI tools: `tomll` (formatter), `tomljson` (TOML to JSON), and `jsontoml` (JSON to TOML). The codebase demonstrates strong engineering practices: pooled encoder/decoder states, cached struct plans via `sync.Map`, word-at-a-time scanning for performance, a fused generic decode path, and comprehensive test coverage including auto-generated conformance tests from the upstream toml-test suite. It also includes an experimental document-editing package (`unstable/edit`) that preserves comments and layout via byte-range indexing and splice-based mutations.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
spf13/viper ★ 30438 2284 APPLICATION

Viper is a mature, widely-used Go configuration library that provides a unified API for reading configuration from multiple sources: files (YAML, JSON, TOML, dotenv), environment variables, command-line flags (via pflag), remote key-value stores (etcd, Consul, Firestore, NATS), and explicit overrides. It implements a priority-based merging system where later sources override earlier ones. The library offers nested key access with dot notation, aliasing, live file watching, and unmarshaling to structs via mapstructure. The architecture is a single Viper struct with internal maps for each source, plus a pluggable encoding layer and a finder interface for config file discovery. It is designed as a library to be embedded in Go applications, not as a standalone service.

RATING: 9.0/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
Monibuca/engine ★ 981 207 APPLICATION

Monibuca/engine is a media streaming server engine written in Go, designed for extensibility through a plugin system. It handles the ingestion (publishing) and distribution (subscribing) of media streams, supporting protocols like RTSP, WebRTC, HTTP-FLV, and RTMP via plugins. The engine manages stream lifecycle through a state machine (waiting for publisher, track availability, publishing, waiting to close, closed), processes audio/video/data tracks with efficient buffering, and provides an HTTP API for stream control and monitoring. Key internals include a custom ring buffer for low-latency frame queuing, a memory pool to reduce GC pressure, and an event bus for inter-component communication. The configuration system supports layered overrides (command line > plugin config > global config > defaults). The architecture emphasizes separation of concerns: core stream management resides in stream.go, track handling in track/, publisher/subscriber logic in publisher/ and subscriber/, and plugins extend functionality without modifying the core. Data flows involve publishers sending media to the engine, which demuxes into tracks stored in ring buffers; subscribers then consume these tracks for retransmission. External dependencies include pion/webrtc for WebRTC, bluenviron/gortsplib for RTSP, and zap for logging. The engine exhibits strong performance optimizations but contains some complexity in state handling and occasional use of unsafe pointers for efficiency.

RATING: 8.1/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
crocuda/pipelight ★ 981 28 APPLICATION

Pipelight is a Rust-based CLI tool for defining and running automation pipelines. It allows users to create pipelines using TOML, YAML, HCL, or TypeScript configurations, trigger them via git hooks or file system changes, and monitor their execution. The architecture follows a modular design with separate crates for CLI parsing, workflow execution, configuration casting, process management, and utilities. Key features include process detachment for background execution, output capture for post-execution inspection, git hook integration, and file watching capabilities. The project demonstrates strong engineering practices with comprehensive error handling, cross-platform considerations, and thoughtful UX design for terminal interactions.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
mgree/ffs ★ 498 17 APPLICATION

ffs is a FUSE-based filesystem that mounts semi-structured data formats (JSON, TOML, YAML) as a Unix directory tree, enabling interactive editing with standard shell commands (cat, echo, mv, rm, mkdir). It includes companion tools pack (directory tree → data format) and unpack (data format → directory tree). The system is implemented in Rust with a modular architecture: the nodelike crate provides a generic trait and Node enum for format-agnostic representation, while ffs handles FUSE mount logic and pack/unpack handle batch conversion. Key features include lazy/eager loading strategies, name munging for special characters, extended attribute support, and format conversion (e.g., JSON to YAML). The repository also contains an extensive benchmark suite using real-world datasets (FDA, GitHub, NOAA, etc.) to compare loading strategies. While the core functionality is complete and well-tested with over 60 integration test scripts, the project appears to be in a stale maintenance state with no recent commits (last significant activity in 2021) and several open issues. The codebase demonstrates good software engineering practices (modular design, comprehensive tests, performance instrumentation) but has limited reuse potential beyond its specific domain of semi-structured data manipulation via filesystem semantics.

RATING: 6.9/10 MAINT: stale DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: