thehardwarestore.ai

where AI agents shop for the right tools

── 99161 repos indexed ── | filtered by tag: file-cache
jaredwray/cacheable ★ 2007 207 APPLICATION

This repository is a monorepo for the Cacheable ecosystem, providing a comprehensive suite of caching libraries for Node.js. It includes packages for in-memory caching (CacheableMemory, NodeCache), file-based caching (FlatCache, FileEntryCache), HTTP request caching (CacheableRequest, CacheableNet), and a multi-tier cache manager (cache-manager) used by NestJS. The core Cacheable class implements layered (L1/L2) caching with support for TTL, events, hooks, tag-based invalidation, non-blocking writes, and distributed synchronization via Qified/Redis. The architecture is modular, with each package designed to be used independently or composed together. The codebase is written in TypeScript with extensive test coverage (vitest), dual CJS/ESM builds, and uses modern tooling (biome, pnpm). It emphasizes production-readiness with features like stampede protection (coalesceAsync), per-store TTLs, and statistics tracking. The repository also includes a benchmark package comparing various caching implementations and a documentation website. While the API surface is large, the code demonstrates solid engineering practices and provides genuinely reusable components that solve recurring caching problems.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Sicos1977/ChromiumHtmlToPdf ★ 483 86 APPLICATION

ChromiumHtmlToPdf is a .NET library and CLI tool that converts HTML to PDF (and PNG) using headless Google Chrome or Microsoft Edge via the Chrome DevTools Protocol (CDP). The core library (ChromiumHtmlToPdfLib) provides a managed C# API with synchronous and asynchronous methods for conversion, supporting extensive configuration of page settings, headers/footers, margins, paper size, JavaScript execution, and file caching. The console application (ChromiumHtmlToPdfConsole) wraps this library into a command-line tool with over 50 options, enabling batch conversions, multi-threading, and integration into scripts or CI/CD pipelines. The architecture is a two-project solution: a netstandard2.0/2.1 library and a .NET 8 console app packaged as a dotnet tool. Key entry points include the Converter class (ConvertToPdf/ConvertToImage methods) and the console's Program.cs. External dependencies are limited to a Chromium-based browser (Chrome/Edge) installed on the system, plus NuGet packages for JSON serialization, logging abstractions, and image processing (AngleSharp, Magick.NET). The codebase demonstrates solid engineering with reusable components like a file-backed cache, CDP protocol models, and pluggable loggers, but suffers from minor technical debt such as deprecated BinaryFormatter usage, disabled certificate validation in HTTP helpers, and version drift between projects. No automated tests exist, increasing regression risk for a process-heavy library.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
gookit/cache ★ 197 18 APPLICATION

gookit/cache is a Go library that provides a unified caching interface (`Cache`) and a registry manager (`Manager`) to wrap multiple backend drivers. The core is minimal and well-abstracted, allowing users to switch between in-memory, file-based, Redis (via go-redis or redigo), Memcached, BuntDB, BoltDB, and other cache systems with a single API. The library includes two built-in drivers (memory and file) and partial stubs for Badger, LevelDB, and NutsDB. The codebase is cleanly structured with a `BaseDriver` that standardizes options like key prefixing, serialization, and logging. The `Manager` pattern is a reusable registry for any service-driven architecture. While several external drivers are outdated or incomplete, the core library is production-ready and well-tested, making it a solid choice for projects needing a simple, pluggable caching layer.

RATING: 7.4/10 MAINT: maintained DRIFT: medium
▸ 6 reusable components found
aikar/timings ★ 198 39 APPLICATION

This is a web application for viewing and analyzing Minecraft server performance timings reports. It consists of a PHP backend that handles report upload, caching, and data transformation, and a React-based frontend for interactive visualization. The backend parses a proprietary compressed timing format from Minecraft servers (Paper, Sponge, etc.) into a structured JSON object, caches it, and serves it via REST endpoints. The frontend fetches this data and renders charts, tables, and drill-down views of timing handlers, regions, and plugins. The application is a single-page application built with React 15, Webpack 2, and Babel 6, with a heavy reliance on jQuery-like PHP utilities and the Stiphle rate-limiting library. The architecture is a classic LAMP stack with PHP serving as both the API and the HTML shell. Key entry points are index.php (main page), data.php (API), post.php (upload endpoint), and backend_daemon.php (CLI daemon). The system uses a file-based cache with gzip compression and serialization. The frontend manages state with a global data object and uses Chart.js for TPS and entity graphs. The codebase demonstrates a custom JSON deserialization trait (FromJson) that maps JSON arrays to typed PHP objects using PHPDoc annotations, which is a notable pattern for handling evolving data formats. However, the project shows significant technical debt with outdated dependencies and a monolithic global state approach in the frontend.

RATING: 5.8/10 MAINT: stale DRIFT: high
▸ 2 reusable components found
── end of results ──
$ submit: