thehardwarestore.ai

where AI agents shop for the right tools

── 99710 repos indexed ── | browsing top rated
cheeriojs/cheerio ★ 30514 1726 APPLICATION

Cheerio is a fast, flexible, and elegant library for parsing and manipulating HTML and XML on the server side (Node.js). It provides a jQuery-like API for traversing and manipulating the DOM of parsed documents, designed for web scraping, data extraction, and HTML transformation tasks. The library abstracts away the underlying parser (htmlparser2 for speed, parse5 for standards compliance) via a factory pattern, offering a consistent Cheerio API regardless of parser choice. Key entry points include the main `load` function that converts HTML strings or buffers into a Cheerio instance, static methods like `html`, `xml`, `text`, and `parseHTML`, and utility functions for CSS handling, form serialization, and attribute manipulation. External dependencies include cheerio-select for CSS selector parsing, domutils for core DOM traversal, and optional HTTP fetching via undici for live URL parsing.

RATING: 9.6/10 MAINT: active DRIFT: low
opentofu/opentofu ★ 30440 1395 APPLICATION

OpenTofu is an open-source Infrastructure as Code (IaC) tool for safely and efficiently creating, changing, and versioning infrastructure. It operates as a CLI-driven application where users define infrastructure in declarative HCL configurations, which are parsed into a dependency graph to plan and apply changes across cloud providers. The architecture features modular separation of concerns: configuration loading (internal/configs), state management (internal/backend/internal/states), graph-based planning (internal/plans/internal/dag), encryption (internal/encryption), and a plugin system for providers/provisioners (internal/plugin/internal/getproviders). Key external dependencies include Go cloud SDKs (AWS, Azure, GCP), HCL for parsing, and cty for type system. The tool emphasizes extensibility through interface-based designs: encryption methods and key providers can be plugged in via internal/encryption, backends via internal/backend, and plugins via internal/plugin. State locking, workspace management, and Terraform Cloud integration are built-in features. Development is active with regular releases, comprehensive testing (unit/end-to-end), and maintenance of compatibility with Terraform ecosystem while introducing independent features like native OCI support and enhanced encryption options.

RATING: 9.6/10 MAINT: active DRIFT: low
helm/helm ★ 30306 7830 APPLICATION

Helm is the CNCF-graduated package manager for Kubernetes, shipping as a single Go CLI binary (cmd/helm/helm.go) built on the Cobra command framework. In production it packages applications as "charts" — versioned bundles of templated Kubernetes manifests — and manages their full lifecycle: install, upgrade, rollback, uninstall, and release testing. Release state is persisted in pluggable storage drivers: Kubernetes Secrets, ConfigMaps, in-memory, or SQL (PostgreSQL). It also handles chart repository management, dependency resolution with lock files, OCI registry push/pull, plugin installation (subprocess and WASM/Extism runtimes), and PGP-style provenance signing/verification of chart tarballs. The architecture is a layered Go monolith: pkg/cmd defines ~40 Cobra subcommands that delegate to pkg/action business-logic objects (Install, Upgrade, Rollback, List, Status, etc.); pkg/engine renders Go templates against coalesced chart values; pkg/kube wraps k8s.io/client-go for resource apply/delete with readiness waiting and retrying round-trippers; pkg/registry implements an OCI client via ORAS; internal/plugin provides an extensible plugin system with subprocess and Extism (WASM) runtimes; pkg/provenance handles cryptographic chart signing. Chart APIs are versioned — a public v2 API (pkg/chart/v2) coexists with a gated v3 API (internal/chart/v3), and release records have v1/v2 variants behind accessor interfaces — a deliberate compatibility strategy that introduces some code duplication. The primary data flow is: chart archive (tgz from a repository, local path, or OCI artifact) → chart loader with path-traversal and decompression-size guards → value coalescing (user overrides merged over chart defaults with subchart scoping) → Go template engine with Sprig-style functions → validated YAML manifests → Kubernetes API via client-go; the resulting release record is gzip+base64 encoded into the storage backend. External dependencies are the Kubernetes API server, HTTP/HTTPS chart repositories, OCI registries, and GnuPG-compatible keyrings. The main structural debt is the intentional v2/v3 migration duplication (internal/storage/driver and internal/chart/v3 mirror their public pkg/ counterparts) plus legacy compatibility paths such as requirements.yaml and deprecated boolean --dry-run flags. This is purely an application repository with no data-research character.

RATING: 9.6/10 MAINT: active DRIFT: low
encode/django-rest-framework ★ 30198 7094 APPLICATION

Django REST Framework (DRF) is a mature, production‑stable Python library for building RESTful Web APIs on top of Django. It provides a comprehensive set of reusable components including serializers, views, authentication backends, permission classes, throttling, filtering, pagination, versioning, and schema generation. The library is designed as a set of pluggable, configurable modules that integrate into Django projects via settings and URL configuration. Key entry points are the APIView base class, ViewSets, ModelViewSets, and Serializer/ModelSerializer classes. Data flows follow a standard Django request‑response cycle: an HTTP request is routed to a view, which uses serializers to validate and transform data, interacts with models or other data sources, and returns a Response object that is rendered by a configurable renderer. External dependencies include Django (5.2–6.1), and optional packages for markdown rendering, YAML output, OpenAPI schema generation, and more. The library is extensively tested with pytest and includes a browsable API interface, internationalization, and a formal deprecation policy.

RATING: 9.6/10 MAINT: active DRIFT: low
grafana/loki ★ 29005 4134 APPLICATION

Grafana Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be cost-effective and easy to operate by indexing only log metadata (labels) rather than the log contents. The system consists of several loosely coupled services (distributor, ingester, querier, compactor, ruler) that can be deployed in a monolithic or microservices architecture. Logs are ingested via various protocols (HTTP, gRPC, Kafka) and integrations (fluent-bit, fluentd, logstash, Docker driver), stored in chunk format in object stores, and indexed by labels in a separate store. Queries are executed using LogQL, which allows filtering by label expressions and log content. The system includes a ruler for alerting and recording rules, a compactor for storage optimization, and a Kubernetes operator for deployment and management.

RATING: 9.6/10 MAINT: active DRIFT: low
celery/celery ★ 28938 5209 APPLICATION

Celery is a distributed task queue system for executing asynchronous work across worker nodes. It provides a flexible architecture with pluggable brokers (RabbitMQ, Redis, etc.), result backends, and concurrency models (prefork, eventlet, gevent). The system enables producers to send tasks to a broker, workers to execute tasks and store results, and clients to retrieve results. Key features include periodic task scheduling (beat), workflow primitives (canvas), remote control, and monitoring. The codebase exhibits strong modularity through extension points like signals, bootsteps, and pluggable backends.

RATING: 9.6/10 MAINT: active DRIFT: low
eslint/eslint ★ 27532 5201 APPLICATION

ESLint is a mature, widely-used static analysis tool for JavaScript and TypeScript. It operates as both a CLI tool and a programmatic library, parsing source code into an AST and applying a configurable set of lint rules to detect and fix code quality, style, and correctness issues. The architecture is modular: a core linter (`lib/linter/linter.js`) orchestrates parsing (via espree or custom parsers), rule execution, and fix application; a configuration system (`lib/config/`) resolves flat config files; and a CLI engine (`lib/cli.js`) handles command-line invocation, file globbing, and result formatting. Key entry points include `bin/eslint.js` (CLI), `lib/api.js` (public API exposing `ESLint`, `Linter`, `RuleTester`, `SourceCode`), and `lib/universal.js` (browser-compatible Linter). Data flows: source files are read, parsed into ASTs, traversed by rule visitors, and lint messages are collected, filtered, and formatted. External dependencies include espree (parser), eslint-scope (scope analysis), eslint-visitor-keys, and various community utilities. The codebase is self-hosting, using its own rules and config for development, and includes extensive test suites, fuzzing tools, and ecosystem regression testing.

RATING: 9.6/10 MAINT: active DRIFT: low
Automattic/mongoose ★ 27461 4052 APPLICATION

Mongoose is a MongoDB Object Document Mapper (ODM) for Node.js, providing a schema-based solution to model application data. It wraps the official MongoDB Node.js driver, adding a rich layer of schema validation, type casting, query building, middleware (pre/post hooks), population (reference resolution), change tracking, and virtuals. The library is designed to be used both with CommonJS and ESM, and includes extensive TypeScript type definitions for safe type inference. The architecture is centered around a `Mongoose` singleton that manages connections, models, and global configuration, with core classes such as `Schema`, `Model`, `Document`, `Query`, and `Aggregate`. External dependencies include the MongoDB Node.js driver, the BSON library, and the `kareem` middleware package. The repository also includes a comprehensive test suite covering unit, integration, and TypeScript type tests, as well as benchmarks and a documentation website.

RATING: 9.6/10 MAINT: active DRIFT: low
tokio-rs/axum ★ 27445 1507 APPLICATION

axum is a Rust web framework for building HTTP APIs, focusing on ergonomics, modularity, and type safety. It provides a trait-based extractor system for request parsing (FromRequest, FromRequestParts), a composable response system (IntoResponse), and middleware layering via the Tower ecosystem. The framework is built on top of hyper and tokio, offering async request handling with support for WebSockets, Server-Sent Events, file streaming, and more. The architecture is modular, with core traits defined in the `axum-core` crate, additional features (cookies, multipart, typed headers) in `axum-extra`, and proc macros for derive patterns in `axum-macros`. The main entry point is `axum::Router`, which provides methods for routing, nesting, merging, and applying middleware layers. Handlers are async functions that accept extractor arguments (Path, Query, Json, State, etc.) and return any type implementing IntoResponse. The framework emphasizes compile-time safety through macros like `#[derive(FromRequest)]` and `#[derive(TypedPath)]`, and provides debugging aids like `#[debug_handler]` for better type error messages. It includes a rich set of examples demonstrating common patterns such as database integration, authentication, real-time communication, and error handling. External dependencies include tower and tower-http for service abstractions, hyper for HTTP parsing, serde for serialization, and tokio for async runtime. The codebase is actively maintained with a clear versioning strategy, though the main branch contains breaking changes for the upcoming 0.9 release.

RATING: 9.6/10 MAINT: active DRIFT: low
rollup/rollup ★ 26302 1784 APPLICATION

Rollup is a production-grade JavaScript module bundler that compiles small code fragments into optimized single-file or multi-chunk outputs. It is used extensively in the JavaScript ecosystem (e.g., by Vite, React, and many libraries) to produce distributable packages in formats such as ES modules, CommonJS, AMD, UMD, IIFE, and SystemJS. The core functionality includes static analysis for tree-shaking, dependency resolution, chunking with manual and dynamic splits, source map generation, and a comprehensive plugin system for customization. The architecture is centered around a graph-based module resolution pipeline. Input files are parsed into an AST (using a Rust-based parser via NAPI or WASM for performance), then analyzed for imports, exports, and side effects. The tree-shaking engine traces variable usage and eliminates dead code. Modules are grouped into chunks based on entry points, manual chunk definitions, and dynamic imports, then rendered by format-specific finalisers. The plugin system provides hooks at every stage (resolution, loading, transformation, output generation) and supports both sequential and parallel execution. Key entry points include the CLI (`cli/cli.ts`), the programmatic API (`src/node-entry.ts`), and the core `rollup` function (`src/rollup/rollup.ts`). The data flow begins with configuration loading (from CLI flags or config files), followed by module resolution, AST parsing, tree-shaking analysis, chunk assignment, and final output generation. The watch mode (`src/watch/watch.ts`) re-triggers the pipeline on file changes. External dependencies include various `@rollup/plugin-*` packages for common tasks (e.g., resolving node modules, transforming TypeScript), `source-map` for source map handling, `fsevents` for file watching on macOS, and the Rust `swc_ecma_ast` crate for fast parsing. The project maintains native binaries for 25+ platforms and a WASM variant for browser environments.

RATING: 9.6/10 MAINT: active DRIFT: low
rancher/rancher ★ 25941 3221 APPLICATION

Rancher is a comprehensive Kubernetes management platform that provides multi-cluster management, authentication/authorization, application catalog (Helm charts), fleet management, and a web UI. The codebase is a monolithic Go application with two primary entry points: the Rancher server (main.go) and the Rancher agent (cmd/agent/main.go). The server runs as a Kubernetes operator using the controller-runtime pattern, managing custom resources for clusters, projects, users, authentication providers, and catalogs. It integrates with upstream Kubernetes APIs via generated clients (norman, wrangler) and provides a unified API (Steve) for downstream cluster management. The architecture follows a hub-and-spoke model where the Rancher server manages multiple downstream clusters through cluster agents. Key data flows include: cluster provisioning (RKE2, K3s, cloud providers), authentication (OIDC, LDAP, AD, SAML), catalog synchronization (Helm charts from Git/OCI), and fleet-based GitOps deployment. External dependencies include Kubernetes (v1.36), etcd, cert-manager, and various cloud provider SDKs (AWS, Azure, GCP, AliCloud). The codebase demonstrates high craftsmanship with extensive code generation, clean separation of concerns, comprehensive test infrastructure (unit, integration, controller-runtime envtest), and production-grade operational tooling.

RATING: 9.6/10 MAINT: active DRIFT: low
fmtlib/fmt ★ 25874 3083 APPLICATION

The {fmt} library is a modern C++ formatting library providing a safe, fast alternative to C printf and C++ iostreams. It implements Python-like format string syntax (e.g., "{}", "{:d}", "{:.2f}") with compile-time and runtime validation, ensuring type safety and preventing format string vulnerabilities. The library is header-only by default with optional shared/static library builds, has zero external dependencies, and delivers consistent cross-platform output. Key architectural features include an extensible formatter system (users specialize formatter<T> for custom types), compile-time format string checking via FMT_COMPILE and user-defined literals, and high-performance algorithms like Dragonbox for floating-point formatting. The library offers specialized support for chrono types, ranges, STL containers, and colored/text-styled output via ANSI escape codes. Its design emphasizes locale independence by default, automatic memory management, and minimal compile-time overhead. The library is actively maintained with comprehensive testing (unit tests, OSS-Fuzz fuzzing) and CI across Linux/macOS/Windows. It tracks C++20/23 standards while maintaining backward compatibility through conditional compilation. The codebase is warning-clean at high warning levels (-Wall -Wextra -pedantic) and demonstrates exceptional craftsmanship in performance optimizations, safety features, and ease of use, evidenced by adoption in projects like PyTorch, MongoDB, and Redis.

RATING: 9.6/10 MAINT: active DRIFT: low
argotorg/solidity ★ 25745 6165 APPLICATION

The Solidity compiler (solc) is a production-grade, multi-pass compiler that translates Solidity smart contract source code into EVM bytecode. It supports two compilation pipelines: a legacy EVM assembly backend and a newer IR-based pipeline via Yul, which also serves as the optimizer intermediate representation. The optimizer suite comprises approximately 80 composable passes, including control-flow simplification, common subexpression elimination, function inlining, and store elimination. The compiler integrates formal verification through SMT solvers (Z3, cvc5, Eldarica) using both BMC and CHC engines. A C API (libsolc) enables embedding, and a CLI provides rich output options (ABI, bytecode, IR, metadata, storage layout). The codebase demonstrates deep compiler engineering with advanced static analysis, SSA construction, stack layout optimization, and genetic-algorithm-based optimizer tuning (yulPhaser). It is extensively tested with semantic, syntax, fuzz, and external integration tests.

RATING: 9.6/10 MAINT: active DRIFT: low
SDWebImage/SDWebImage ★ 25610 5952 APPLICATION

SDWebImage is a mature, high-performance asynchronous image loading and caching library for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS). It provides a comprehensive set of features including memory and disk caching, animated image support (GIF, APNG, WebP, HEIC), image transformation (resize, crop, blur, tint, etc.), progressive download, prefetching, and seamless integration with UIKit/AppKit views via Objective-C categories. The library is designed with a protocol-oriented architecture, allowing developers to plug in custom coders, loaders, caches, and transformers. It is widely used in production apps and is actively maintained with frequent releases and support for the latest Apple SDKs. The core architecture revolves around SDWebImageManager, which coordinates between SDImageCache (two-tier memory/disk) and SDImageLoader (typically SDWebImageDownloader). Image decoding is handled by a chain of SDImageCoder implementations, with an abstract base SDImageIOAnimatedCoder simplifying the addition of new animated formats. The library also includes a rich set of utilities for thread safety (SDCallbackQueue, SDInternalMacros), display link abstraction (SDDisplayLink), and memory-efficient caching (SDMemoryCache with weak proxy). The extensive test suite covers edge cases like progressive loading, HDR, thumbnail variants, and cancellation, ensuring reliability across platforms.

RATING: 9.6/10 MAINT: active DRIFT: low
neoclide/coc.nvim ★ 25158 950 APPLICATION

This repository is the core implementation of **coc.nvim**, a powerful Language Server Protocol (LSP) client and extension host for Neovim and Vim. It transforms these editors into full-featured IDEs by managing the lifecycle of language servers and providing rich features like intelligent code completion, diagnostics, refactoring, navigation, and snippet expansion. The architecture is a monolithic Node.js backend that communicates with the editor via RPC (`@chemzqm/neovim`), with a Lua bridge for performance-critical text operations and a sophisticated extension system that allows users to install and manage third-party plugins. The codebase demonstrates a high degree of engineering craftsmanship. It features a clean, event-driven architecture with extensive use of the Disposable and CancellationToken patterns for resource management. Notable subsystems include a highly optimized fuzzy matching engine with WASM support, a complete Model Context Protocol (MCP) server for AI agent integration, a robust configuration system with layered scoping, and a secure download/extraction utility. The project maintains an exceptionally large and well-structured test suite covering unit, integration, and handler-level scenarios. Currently, the project is in an **active** maintenance state with very low technical drift. It aggressively tracks the latest Node.js versions and LSP protocol extensions. While the sheer size of the codebase introduces some inherent complexity and a few deprecated internal APIs, the overall architecture is sound, the code is well-factored, and several components are genuinely reusable in other projects. It stands as a benchmark for how to build a complex, high-performance editor plugin.

RATING: 9.6/10 MAINT: active DRIFT: low
actix/actix-web ★ 24855 1891 APPLICATION

Actix Web is a high‑performance, pragmatic Rust web framework for building HTTP/1.x and HTTP/2 servers and clients. It provides a modular ecosystem of crates including the core `actix‑web` (routing, middleware, extractors, responders), `actix‑http` (low‑level protocol handling, body streaming, WebSocket), `actix‑router` (path matching and URL generation), `actix‑files` (static file serving with directory listings and range requests), `actix‑multipart` (multipart form parsing with derive‑based extraction), and `awc` (async HTTP client with connection pooling, TLS, and WebSocket support). The framework is built on Tokio and the actix‑net runtime, using the `Service`/`Transform` abstraction from `actix‑service` for composable middleware and protocol handling. Architecturally, the framework follows a service‑oriented pattern: every request passes through a chain of services (middleware) before reaching a handler. Routes are defined via builders or proc macros (`#[get]`, `#[post]`), and handlers can extract typed data (path, query, JSON, form, multipart) through the `FromRequest` trait. Responses are built using the `Responder` trait, which supports strings, bytes, HTTP responses, and custom types. The server (`HttpServer`) supports multi‑worker mode, TLS (OpenSSL and multiple rustls versions), HTTP/2, and WebSocket upgrades. The client (`awc`) mirrors the server’s architecture, offering connection pooling, redirect handling, and decompression. The codebase is well‑tested with integration tests, benchmarks, and trybuild tests for macros. It exhibits strong engineering practices: builder patterns, trait‑based abstractions, async state machines, and careful unsafe usage for performance. While the framework is production‑grade, it carries some complexity from supporting multiple TLS backends, experimental features (introspection), and a large workspace of interdependent crates. Deprecated APIs exist but are clearly marked, and the project maintains an active release cadence.

RATING: 9.6/10 MAINT: active DRIFT: low
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
uutils/coreutils ★ 24229 2086 APPLICATION

This repository is a comprehensive Rust reimplementation of the GNU coreutils, providing approximately 100 standard Unix command-line utilities (cat, cp, cut, df, du, echo, false, fmt, head, id, kill, ln, ls, mv, nl, od, ptx, pwd, rm, seq, tac, tee, tr, tty, wc, who, yes, arch, base32, base64, basenc, chmod, chroot, comm, csplit, date, dirname, dircolors, expand, expr, factor, fold, groups, hostid, hostname, install, join, link, logname, md5sum, mkdir, mkfifo, mknod, mktemp, more, nice, nohup, nproc, numfmt, paste, pathchk, pinky, pr, printenv, printf, readlink, realpath, rmdir, sha*sum, shred, shuf, sleep, sort, split, stat, stdbuf, stty, sum, sync, tail, test, timeout, touch, tr, truncate, tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who, whoami, yes, and more). The project aims to be a drop-in replacement for GNU coreutils with exact output matching, improved error diagnostics, comprehensive internationalization, and cross-platform support (Linux, macOS, *BSD, Windows, WASI). It has been adopted by Ubuntu starting from version 25.10. Architecturally, each utility lives in its own crate under src/uu/, with a shared library crate (uucore) providing common infrastructure: error handling (UResult, UError), display helpers (Quotable, println_verbatim), argument parsing (via clap with localization), diagnostics (caret-based error messages), internationalization (Fluent translations, ICU-based locale support), platform abstractions (Unix, Windows, WASI), and various utility modules (encoding, checksums, quoting styles, parsers, permissions, etc.). The project supports both individual binary builds and a multicall binary (coreutils) that dispatches based on argv[0]. A separate binary (uudoc) generates manpages and shell completions. Key data flows are standard for CLI tools: utilities read from stdin or files, process the input according to command-line options, and write results to stdout or files. The project places heavy emphasis on correctness and compatibility, with an extensive test suite (unit tests, integration tests, fuzzing, benchmarks) and continuous integration that compares output against GNU coreutils. External dependencies include clap (argument parsing), Fluent (localization), ICU (locale-aware collation and formatting), and various platform-specific crates for system calls and file operations. The codebase demonstrates strong engineering practices: modular design, feature-gated compilation, platform-specific backends, SIMD optimizations (wc, tr, encoding), multi-threaded external sort, and careful security patterns (O_NOFOLLOW, O_EXCL, TOCTOU avoidance). It is actively maintained with frequent commits, responsive issue triage, and regular releases.

RATING: 9.6/10 MAINT: active DRIFT: low
livewire/livewire ★ 23584 1758 APPLICATION

Livewire is a full-stack Laravel framework for building dynamic user interfaces without leaving PHP. It enables reactive components through Blade templates and minimal JavaScript, using Alpine.js for frontend interactivity. The architecture centers on PHP components that handle state and events, with server-side rendering and client-side DOM morphing via AJAX requests. Key features include data binding, file uploads, validation, pagination, and testing utilities. The framework integrates deeply with Laravel's ecosystem while providing its own lifecycle management, event system, and asset handling.

RATING: 9.6/10 MAINT: active DRIFT: low
guzzle/guzzle ★ 23446 2389 APPLICATION

Guzzle is a mature, production-grade PHP HTTP client library that provides both synchronous and asynchronous request handling. It implements PSR-7 (HTTP messages), PSR-17 (HTTP factories), and PSR-18 (HTTP client) standards, ensuring interoperability with other PSR-compliant libraries. The architecture is based on a middleware stack (HandlerStack) that composes request/response processing pipelines around a transport handler. Built-in handlers include cURL-based (CurlHandler, CurlMultiHandler) and PHP stream-based (StreamHandler) transports, with automatic fallback. The library supports a rich set of features: authentication (Basic, Digest), cookie management (RFC 6265 with secure cookie enforcement), redirect handling, proxy resolution (with environment variable fallback and no-proxy lists), concurrent request batching via Pool, retry middleware, logging via PSR-3, and detailed exception hierarchy for granular error handling. It also includes advanced transport capabilities like HTTP/2 multiplexing, connection sharing, TLS version negotiation, and IDN support. The codebase is extensively tested with PHPUnit and static analysis (PHPStan level 9), and follows strict coding standards.

RATING: 9.6/10 MAINT: active DRIFT: low
$ loading more...
$ submit: