thehardwarestore.ai

where AI agents shop for the right tools

── 99114 repos indexed ── | filtered by tag: #csv
johnkerl/miller ★ 10041 244 APPLICATION

Miller (mlr) is a command-line data processing tool for structured text formats including CSV, TSV, JSON, JSON Lines, YAML, DKVP, and others. It operates as a streaming pipeline: input records are read from files or stdin, processed through a chain of transformer verbs (e.g., cut, sort, join, stats1, put, filter), and written to output in any supported format. The tool includes a domain-specific language (DSL) for record-level transformations, with support for user-defined functions, subroutines, loops, and higher-order functions. Miller is designed for performance, using Go channels for concurrent streaming, batch processing, and a slab allocator for efficient memory use. The architecture is a monolithic CLI application written in Go with no external runtime dependencies. Key entry points include the main binary (cmd/mlr/main.go), the entrypoint dispatcher (pkg/entrypoint), and the terminal subcommands (help, repl, script, regtest, mcp). The codebase is organized into packages for input readers, output writers, transformers (verbs), DSL parsing and execution, CLI flag handling, and a core value type system (Mlrval). Miller also provides an MCP (Model Context Protocol) server for AI agent integration, shell completion scripts, and a REPL for interactive use. Miller is not a research project; it is a production-grade data munging tool comparable to awk, sed, cut, join, and sort but for name-indexed data. Its primary data flows involve reading heterogeneous records, applying transformations via verbs or DSL expressions, and writing results. The tool handles compressed files, in-place editing, and output redirection to files or pipes.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
saulpw/visidata ★ 9341 374 APPLICATION

VisiData is a terminal-based interactive spreadsheet application for exploring, cleaning, restructuring, and analyzing tabular data. It provides a real-time curses interface for loading data from diverse sources (CSV, JSON, Excel, SQL databases, APIs, etc.), applying transformations via hundreds of keyboard-driven commands (sort, filter, pivot, melt, unfurl, etc.), and saving results. The architecture centers around a Sheet/Column abstraction with a plugin system for loaders, features, and specialized applications (vgit for Git, vdsql for SQL). Key strengths include its extensible command system, dynamic type inference, and reversible operations via undo/redo. While the core is cohesive, the extensive optional dependencies and experimental features introduce some maintenance complexity.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
donatj/CsvToMarkdownTable ★ 302 47 APPLICATION

This repository provides a robust, well-tested JavaScript/TypeScript library and CLI tool for converting CSV strings into Markdown table format. The core function `csvToMarkdown` accepts a CSV string, delimiter, header flag, and optional configuration (enclosure, escape, newline replacement, cell filter, pretty-print). It leverages the `csv-walker` library for CSV parsing and outputs a properly formatted Markdown table with aligned columns. The package is distributed in UMD, ESM, and CommonJS formats, making it usable in browsers, Node.js, and bundlers. The codebase demonstrates high craftsmanship: clean TypeScript with strict options, comprehensive test coverage (including CLI, type declarations, and edge cases), automated CI/CD with linting and formatting, and a well-structured build pipeline using Rollup. The CLI tool reads from stdin and supports various delimiters and header options. The repository is actively maintained with recent commits, up-to-date dependencies, and zero open issues.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
jazzband/tablib ★ 4755 614 APPLICATION

Tablib is a Python library for working with tabular datasets in a format-agnostic way. It provides a core `Dataset` class that stores rows and optional headers, and a `Databook` class for collections of datasets. The library's primary functionality is converting between many structured data formats: CSV, TSV, JSON, YAML, Excel (XLS/XLSX), OpenDocument (ODS), dBase (DBF), HTML, Jira, LaTeX, reStructuredText, SQL INSERT statements, and pandas DataFrames. It also supports CLI table rendering via the `tabulate` package. The architecture is modular: each format is implemented as a class with `export_set`, `import_set`, `export_book`, `import_book`, and optionally `detect` methods. These are registered with a central `Registry` that also sets up dynamic property access on `Dataset` and `Databook` objects (e.g., `dataset.csv`, `dataset.json`). Lazy loading through importlib and string-based class references minimizes startup cost for optional formats like XLSX or YAML. The core `Dataset` object provides methods for row/column manipulation, sorting, filtering by tags, transposing, stacking, and applying formatters for custom cell transformations. Data flows are straightforward: users populate a `Dataset`, optionally set headers, then export to any registered format with a single `export()` call. Import reverses this process. Key entry points are `tablib.Dataset()`, `tablib.Databook()`, `tablib.import_set()`, `tablib.import_book()`, and `tablib.detect_format()`. The library has no hard runtime dependencies; all format-specific packages (openpyxl, xlrd, xlwt, odfpy, pyyaml, pandas, tabulate) are optional and requested via extras like `tablib[xlsx]` or `tablib[all]`. The vendored `dbfpy` module handles DBF format without external dependencies. Exception handling is structured with custom exception classes for invalid dimensions, unsupported formats, and missing headers.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
AykutSarac/jsoncrack.com ★ 44479 3569 APPLICATION

JSON Crack is an open-source, browser-based tool for visualizing, formatting, converting, and exploring JSON, YAML, CSV, and XML data as interactive graphs. The monorepo (Turborepo) contains four workspaces: a Next.js web app (apps/www) that provides the full editor experience with a Monaco-based text editor, split-view layout, graph canvas, and various utility modals (jq, JSONPath, schema validation, code generation); a VS Code extension (apps/vscode) that embeds the same graph view as a webview panel; a Chrome extension (apps/chrome-extension) that injects a 'Raw'/'Graph' toggle on any JSON page; and a reusable React component package (packages/jsoncrack-react) that exposes `JSONCrack` as a standalone component along with a `parseGraph` utility and TypeScript types. All data processing happens client-side — the app is a fully static Next.js export served behind NGINX. The architecture is frontend-only, relying on Zustand for state, reaflow for graph layout, react-zoomable-ui for pannable/zoomable canvas, and jsonc-parser for AST-driven parsing. The codebase is well-organized, with clear separation of concerns, good TypeScript coverage, and unit tests in the core package.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
dr5hn/countries-states-cities-database ★ 9864 3030 DATA_RESEARCH

This repository is a curated, comprehensive geographic database of countries, states, cities, and postcodes, with a strong emphasis on ISO 3166 compliance and data quality. It is primarily a data_research project, though it includes supporting application code (export pipelines, validation tools, CI/CD) that enables multi-format distribution (JSON, CSV, SQL, Parquet, etc.). The raw data lives in the `contributions/` directory as JSON files, which are the source of truth. A rich ecosystem of Python, PHP, and Node.js scripts handles ingestion from community and official sources, idempotent correction, enrichment (timezones, translations), and export to 12+ formats. The repository is actively maintained by a community of contributors and automated bots, with rigorous PR validation (schema, coordinates, duplicates, cross-references) and extensive fix documentation. It answers questions like 'What are the administrative divisions of a country?' and 'What postcodes exist for a given locality?' and is used as a reference data source for applications worldwide.

RATING: 8.7/10 REPRO: 8.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
focus-creative-games/luban ★ 4560 732 APPLICATION

Luban is a game configuration solution that transforms structured data (Excel, JSON, YAML, Lua, XML, etc.) into strongly-typed code and serialized data for multiple target languages (C#, Java, Go, C++, Rust, Python, TypeScript, Lua, etc.) and data formats (binary, JSON, protobuf, flatbuffers, msgpack, BSON, etc.). It is implemented as a .NET 8 console application with a plugin-based pipeline architecture: schema loading → data loading → validation → code generation → data export. The core engine (Luban.Core) provides extensible interfaces for custom loaders, validators, code targets, and data targets, all discovered via assembly attributes. Code generation uses Scriban templates with language-specific extensions, and data serialization employs a custom compact binary protocol (ByteBuf). The tool is widely used in game development for managing configuration data across engines like Unity, Unreal, Godot, and Cocos.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
lmorg/murex ★ 1913 40 APPLICATION

Murex is a cross-platform shell and scripting language designed as a more readable, safe, and type-aware alternative to Bash. In production it works as both an interactive REPL (with autocomplete, hint text, preview panes, spellchecking, and job control) and a scripting interpreter with a custom expression language, typed pipelines, exception handling (try/catch/trypipe), multi-scope variables, a built-in unit test framework, event hooks (onPrompt, onKeyPress, onFileSystemChange, onSignalReceived), an HTTP client, and a package/module manager. The defining architectural feature is that data in pipelines carries type metadata: JSON, YAML, CSV, TOML, XML, S-expressions, HCL and more are first-class structured objects with registered Marshal/Unmarshal/ReadArray/ReadMap/ReadIndex hooks, so builtins like alter, tabulate, count, and jsplit operate on structured data rather than raw text. The implementation is Go (with a JS/WASM interpreter variant), organized around lang/ (parser, expression engine, process lifecycle), shell/ (interactive terminal layer), builtins/ (roughly 200 commands, data type adapters, pipes, and event handlers), config/ (profile-driven runtime configuration), and utils/ (standalone helper libraries).

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 6 reusable components found
mindolph/Mindolph ★ 200 19 APPLICATION

Mindolph is a desktop knowledge management application built with JavaFX. It provides integrated support for mind maps, markdown, PlantUML diagrams, and CSV files, along with AI-powered features such as text reframing, summarization, and chat via various LLM providers. The application features a modular architecture with core, base, FX, and domain-specific modules, an event-driven communication system, a plugin/extension system for mind map operations, and a preference management system. Users can manage workspaces, search within files, and use reusable snippets.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
red-data-tools/YouPlot ★ 4846 72 APPLICATION

YouPlot is a command-line tool for creating plots in the terminal using Unicode characters. It reads delimited data from stdin or files, parses it into headers and series, and generates various plot types (barplot, histogram, lineplot, scatter, density, boxplot, count) using the UnicodePlot backend. The tool follows Unix conventions, designed for use in data pipelines with options to pass through input data and output plots to stderr/stdout. It features progressive mode for real-time data visualization and supports configuration via CLI flags, config files, and sensible defaults.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 2 reusable components found
dfurtado/dataclass-csv ★ 196 25 APPLICATION

Dataclass CSV is a Python library that maps CSV rows to dataclass instances, providing type-safe reading and writing of CSV files. It leverages Python's standard `csv` module and dataclasses to automatically convert and validate fields based on type annotations. The library supports common types (int, str, float, bool, datetime, date), custom user-defined types, optional fields with defaults, field mapping for mismatched column names, and decorators for date format and whitespace handling. It includes both a `DataclassReader` (iterable over dataclass instances) and a `DataclassWriter` (writes dataclass lists to CSV). The codebase is small, well-structured, and has no external dependencies beyond the Python standard library. It is primarily a library for application developers who need to integrate CSV data with Python dataclasses in a clean, validated manner.

RATING: 7.7/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
WinMerge/winmerge ★ 9273 1019 APPLICATION

WinMerge is an open-source differencing and merging tool for Windows, written in C++ with MFC and ATL. It provides file and folder comparison (2- and 3-way), syntax highlighting, inline editing, patch generation, and archive support. The application is structured as a monolith with a plugin system (COM-based DLLs) for pre-diff filtering, unpacking, and transformation. It integrates tightly with Windows Explorer via a shell extension and supports internationalization, dark mode, and extensive customization through property pages. The architecture follows the MFC document/view pattern, with core diff engines (vendored xdiff and GNU diffutils), a filter engine with regex-based line/folder filtering, and an options manager using registry or INI file backends. Third-party dependencies are heavily vendored, including Boost (MPL, Fusion, Preprocessor), Poco (Foundation, XML, Encodings), tree-sitter, CrystalEdit, and libxdiff. The project is actively maintained with regular releases, a comprehensive manual, and automated CI/CD pipelines. While primarily a Windows desktop application, it showcases reusable patterns such as an extensible options management system, a self-contained byte comparison engine, a lightweight async task wrapper, and a property page host. However, the codebase carries significant legacy MFC idioms and platform-specific code, limiting cross-platform portability. The vendored dependency tree is large, and some preprocessor-heavy Boost headers are fragile with compiler updates.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
testssl/testssl.sh ★ 9235 1150 APPLICATION

testssl.sh is a mature, command-line Bash tool for comprehensive TLS/SSL security auditing of network services. It tests cipher support, protocol versions (SSLv2 through TLS 1.3), cryptographic vulnerabilities (Heartbleed, CCS, ROBOT, BEAST, POODLE, LOGJAM, FREAK, and many others), certificate validation, HTTP security headers, and STARTTLS on a wide range of protocols. The tool works by performing socket-level TLS handshakes and comparing results against embedded data files. It also includes a client simulation feature that replays ClientHellos from over 100 real-world browsers and libraries to detect server behavior differences. The architecture is a single large Bash script (testssl.sh) with supporting data files under etc/ and utility scripts in utils/. It is driven by command-line options and environment variables, producing output in terminal color, JSON, CSV, HTML, and log formats. The project has active maintenance with a thorough test suite and CI pipelines, though some data sources (e.g., SSL Labs API) are deprecated, and the client simulation data requires manual updates.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
brimdata/zui ★ 1969 138 APPLICATION

Zui (formerly Brim) is an Electron-based desktop application for network security monitoring and data exploration. It provides a graphical interface to query and visualize data stored in a Zed/SuperDB lake, with a focus on Zeek and Suricata log analysis. The application supports importing packet captures (pcap), structured logs (Zeek TSV, NDJSON, CSV, Parquet), and offers a rich query editor (Monaco), histogram, table/inspector views, and export workflows. The codebase is a monorepo (Yarn workspaces, Nx) with packages for type definitions (`superdb-types`), a Node.js client (`superdb-node-client`), sample data, and an e2e test framework (`app-player`). The architecture follows a domain-driven pattern with handlers and operations, a Redux store with versioned state migrations, and a plugin system for extensibility. While the application is actively maintained and functionally rich, it exhibits some technical drift due to a mix of legacy and modern patterns, a large migration history, and tight coupling between core and plugins.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
liquidslr/leetcode-company-wise-problems ★ 29131 5698 DATA_RESEARCH

This repository is a static dataset of LeetCode coding problems curated by company and time period. It contains CSV files organized into directories named after hundreds of companies (e.g., Google, Amazon, Meta, Apple, Goldman Sachs), each with subfiles for different time ranges: 'Thirty Days', 'Three Months', 'Six Months', 'More Than Six Months', and 'All'. Each CSV row includes problem difficulty, title, a frequency metric (normalized so the top problem equals 100), acceptance rate, link, and topic tags. The data is a snapshot as of June 2025, derived from aggregated user reports or scraping. There is no executable code, no transformation scripts, and no automated update mechanism. Many CSV files are empty or contain incomplete data, indicating gaps in coverage. The repository serves as a reference for interview preparation but lacks reproducibility and documentation of data provenance.

RATING: 5.8/10 REPRO: 2.0/10 MAINT: stale DRIFT: low
── end of results ──
$ submit: