awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
imroc avatar

imroc/req

0
View on GitHub↗
4,807 stars·402 forks·Go·MIT·2 viewsreq.cool↗

Req

req is a chainable HTTP client library for Go designed to simplify request configuration and automatic response decoding into structures. It provides a fluent-interface request builder that allows developers to incrementally define request properties and encapsulate HTTP logic into reusable API SDKs.

The project distinguishes itself with a TLS fingerprint emulator that mimics browser network signatures to bypass bot detection and crawler filters. It also includes a concurrent file downloader that increases transfer speeds by fetching large remote files in parallel segments.

The library covers a broad surface of network capabilities, including a pluggable middleware pipeline for centralized error handling and telemetry, stateful cookie management, and automatic proxy rotation. It supports various authentication schemes, detailed network performance measurement, and customizable request retry logic.

It also provides utilities for HTTP response mocking to facilitate unit testing without remote servers.

Features

  • Fluent HTTP Request Configuration - Implements a builder pattern allowing sequential method calls to configure HTTP request parameters fluently.
  • HTTP Client Libraries - Implements a chainable Go library for configuring HTTP requests and automatically decoding responses into structures.
  • HTTP Clients - A chainable HTTP client library for Go that simplifies request configuration and automatic response decoding.
  • HTTP Body Serialization - Automatically converts structured data to appropriate formats like JSON or XML for network transmission.
  • Request-Response Middleware - Processes HTTP requests and responses through a sequence of pluggable handlers for centralized management.
  • REST API Integrations - Simplifies connection to external REST services through automated data serialization and error mapping.
  • API Client SDK Builders - Provides utilities for encapsulating base URLs, shared headers, and authentication into reusable client implementations.
  • Concurrent File Downloaders - Increases download speeds by splitting large files into segments and fetching them concurrently.
  • TLS Fingerprint Emulators - Replicates exact TLS handshake parameters and cipher suites of target browsers to evade bot detection.
  • Fluent Request Builders - Uses an API pattern with method chaining to accumulate request configuration state before execution.
  • Response Body Decoders - Transforms HTTP response payloads into type-safe objects using configurable decoding strategies based on status codes.
  • Middleware Pipelines - Allows injection of custom logic into request, response, client, and transport pipelines via middleware.
  • Content-Type Based Deserializers - Detects the Content-Type header to automatically determine the appropriate request and response parsing strategy.
  • Request Body Attachers - Enables attaching raw strings, form-encoded parameters, or JSON data as the body of an HTTP request.
  • HTTP Middleware Pipelines - Provides a pluggable middleware pipeline for intercepting and transforming HTTP requests and responses.
  • Scraping Infrastructure Management - Bypasses bot detection using TLS fingerprint emulation and automatic proxy rotation.
  • Path Parameter Definitions - Enables the definition of dynamic segments within a URL path to create reusable API request templates.
  • Request Parameter Configuration - Provides tools for defining dynamic query and path parameters for outgoing network requests.
  • Automatic Retry Clients - Automatically retries failed network calls using customizable backoff strategies and policies.
  • Response Body Streaming - Directs response bodies into custom writers for immediate, fragment-based processing.
  • Application-Level Traffic Interception - Executes custom logic within the application request pipeline for tracing and cross-cutting concerns.
  • Automated File Transfer Workflows - Implements robust upload and download workflows featuring parallel streaming and direct file system writing.
  • Client Default Settings - Offers centralized configuration for base URLs and user agents applied across all client requests.
  • Multipart File Uploads - Sends files and form data to servers using multipart encoding.
  • HTTP Proxy Configuration - Supports routing traffic through proxy servers to obscure the request origin.
  • HTTP Request Debugging - Captures raw requests and responses and traces network performance metrics for troubleshooting.
  • Transport Layer Interceptors - Implements transport wrapping to intercept low-level network exchanges for debugging and telemetry.
  • Network Latency Measurements - Measures timing for DNS lookups, TCP connections, and TLS handshakes to identify network latency.
  • Network Traffic Analyzers - Captures, traces, and dumps raw request and response details to troubleshoot communication issues.
  • Proxy and Fingerprint Rotation - Automatically rotates proxy servers to bypass rate limits and avoid IP blocking.
  • Download Progress Tracking - Reports the progress of file downloads through a configurable callback function.
  • Request Header Configuration - Includes comprehensive tools for defining and managing custom HTTP request headers and their ordering.
  • Upload Progress Tracking - Monitors the percentage of data sent during file uploads via a callback function.
  • TLS Handshake Orchestrators - Dynamically manages TLS handshake parameters using custom certificates and browser fingerprints.
  • Structured Error Responses - Converts error response bodies into structured objects when the server returns failure status codes.
  • Cookie Management - Automates the storage and transmission of session cookies across multiple network requests.
  • Error Handling Middleware - Uses middleware to uniformly process API errors and network failures across all requests.
  • HTTP Status-to-Logic Mappings - Maps non-success HTTP status codes to specific error objects using unified client-level logic.
  • Error Type Transformations - Converts consistent API error formats from server responses into uniform internal error types.
  • Direct-to-File Response Saving - Writes response bodies directly to files to avoid loading large payloads into memory.
  • Cookie Management - Automatically stores cookies from server responses and attaches them to subsequent requests.
  • Retry and Backoff Logic - Implements automated retry strategies and exponential backoff to handle network instability.
  • Query Parameter Manipulators - Offers utilities for adding, removing, or replacing query string values using maps or structs.

Star history

Star history chart for imroc/reqStar history chart for imroc/req

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Req

Similar open-source projects, ranked by how many features they share with Req.
  • elbywan/wretchelbywan avatar

    elbywan/wretch

    5,174View on GitHub↗

    Wretch is a chainable HTTP client library and Fetch API wrapper designed to simplify network request configuration, response parsing, and error handling. It functions as a network request manager and middleware framework for managing the end-to-end lifecycle of HTTP calls. The project is distinguished by a fluent interface for request configuration and a modular extension system. It utilizes a programmable response resolver to automate parsing and a plugin-based architecture to add new capabilities to request and response objects. The library covers a broad range of operational capabilities,

    TypeScript
    View on GitHub↗5,174
  • netflix/feignNetflix avatar

    Netflix/feign

    9,783View on GitHub↗

    Feign is a declarative Java HTTP client that automates the generation of web service clients. It allows developers to define REST API endpoints using interfaces and annotations, removing the need to write manual request and response boilerplate code. The project uses dynamic proxies to map method calls to HTTP request templates. It features a pluggable pipeline of encoders and decoders to transform Java objects into request bodies and convert response bodies back into type-safe objects. The library covers a broad range of integration capabilities, including request interception for header ma

    Java
    View on GitHub↗9,783
  • codeigniter4/codeigniter4codeigniter4 avatar

    codeigniter4/CodeIgniter4

    5,924View on GitHub↗

    CodeIgniter is a PHP web framework built on the Model-View-Controller pattern, designed for building full-stack web applications. It provides a lightweight toolkit with minimal configuration, organizing application logic into controllers, models, and views for clean separation of concerns. The framework includes a fluent query builder for constructing SQL statements programmatically, PSR-4 autoloading with namespace mapping, and a service-based dependency injection container for managing shared class instances. The framework distinguishes itself through its comprehensive set of built-in tools

    PHPcodeignitercodeigniter4framework-php
    View on GitHub↗5,924
  • servicestack/servicestackServiceStack avatar

    ServiceStack/ServiceStack

    5,498View on GitHub↗

    ServiceStack is a high-performance .NET web framework designed for building type-safe APIs using strongly-typed request and response objects. It functions as a message-based API engine that decouples business logic from the transport layer, allowing services to be exposed via multiple protocols including HTTP, gRPC, and various message queue providers. The framework is distinguished by its type-safe API generator, which produces native client SDKs and data transfer objects from service metadata across multiple languages. It also includes a distributed service gateway for microservices orchest

    C#c-sharpcsvframework
    View on GitHub↗5,498
See all 30 alternatives to Req→

Frequently asked questions

What does imroc/req do?

req is a chainable HTTP client library for Go designed to simplify request configuration and automatic response decoding into structures. It provides a fluent-interface request builder that allows developers to incrementally define request properties and encapsulate HTTP logic into reusable API SDKs.

What are the main features of imroc/req?

The main features of imroc/req are: Fluent HTTP Request Configuration, HTTP Client Libraries, HTTP Clients, HTTP Body Serialization, Request-Response Middleware, REST API Integrations, API Client SDK Builders, Concurrent File Downloaders.

What are some open-source alternatives to imroc/req?

Open-source alternatives to imroc/req include: elbywan/wretch — Wretch is a chainable HTTP client library and Fetch API wrapper designed to simplify network request configuration,… netflix/feign — Feign is a declarative Java HTTP client that automates the generation of web service clients. It allows developers to… codeigniter4/codeigniter4 — CodeIgniter is a PHP web framework built on the Model-View-Controller pattern, designed for building full-stack web… servicestack/servicestack — ServiceStack is a high-performance .NET web framework designed for building type-safe APIs using strongly-typed… lostisland/faraday — Faraday is an HTTP client library for Ruby that sends requests and processes responses through a middleware pipeline… guzzle/guzzle — Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a…