awesome-repositories.com
Blog
MCP
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
·
Netflix avatar

Netflix/feign

0
View on GitHub↗
9,783 stars·1,939 forks·Java·Apache-2.0·5 views

Feign

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 management, strategy-based retry logic for resilient service consumption, and template expansion for URIs. It also provides tools for recording HTTP traffic logs and gathering client performance metrics.

Features

  • Declarative API Clients - Allows the definition of network endpoints using a declarative interface style with annotations.
  • Pluggable Transformation Pipelines - Provides a pluggable pipeline of interchangeable encoders and decoders for transforming network payloads.
  • API Request Automation - Automates the transformation of Java objects into formatted HTTP request bodies and query parameters.
  • API Client Generators - Automates the generation of HTTP client implementations by mapping Java method calls to request templates.
  • Microservices Communications - Standardizes synchronous communication between distributed microservices using a declarative client approach.
  • HTTP Client Libraries - Serves as a comprehensive Java library for performing synchronous and asynchronous HTTP requests.
  • HTTP Client Wrappers - Wraps complex HTTP communication into type-safe Java interfaces to eliminate request boilerplate.
  • Client Services - Implements network clients that provide type-safe responses and automated request handling.
  • Response Body Decoders - Transforms HTTP response payloads into type-safe Java objects using a pluggable decoding system.
  • Dynamic Proxies - Uses runtime dynamic proxies to intercept interface calls and dispatch them as HTTP requests.
  • Interface-to-Endpoint Mappings - Maps Java method signatures and annotations directly to HTTP endpoints to automate request construction.
  • REST Clients - Implements an interface-based approach to define and execute requests against RESTful APIs.
  • Query Parameter Encoders - Automatically formats maps and objects into valid query strings for dynamic request URL construction.
  • Multipart Form Encoding - Serializes request payloads into multipart/form-data or url-encoded formats for web service transmission.
  • Request Header Configuration - Provides comprehensive tools for defining static and dynamic HTTP request headers via annotations and interceptors.
  • Retry Policies - Implements configurable retry policies to automatically re-execute failed network requests based on specific exceptions.
  • HTTP Request Interceptors - Includes middleware components to intercept and modify outgoing requests for global header injection and authentication.
  • API Error Handling Patterns - Processes non-success HTTP responses through a custom decoder to wrap failures into type-safe exceptions.
  • Interceptor Sequences - Processes outgoing requests through an ordered sequence of interceptors to modify metadata or inject headers.
  • Retry Strategies - Determines whether to re-execute failed network operations based on configurable policies and exception types.
  • Resilience Retry Patterns - Implements configurable retry policies and failure handling to ensure resilient web service consumption.
  • URI Template Expanders - Resolves placeholders in URIs and headers using standard template expansion rules and method parameters.
  • External API Integrations - Facilitates integration with external REST services using custom interceptors and error handling.
  • Request Body Attachers - Converts Java objects into HTTP request bodies using configurable encoders and template expansion.
  • REST框架 - 声明式HTTP客户端连接器。

Star history

Star history chart for netflix/feignStar history chart for netflix/feign

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 Feign

Similar open-source projects, ranked by how many features they share with Feign.
  • openfeign/feignOpenFeign avatar

    OpenFeign/feign

    9,784View on GitHub↗

    Feign is a declarative Java HTTP client framework that maps method signatures to REST API requests. It functions as an HTTP interface mapper, allowing the creation of type-safe clients by defining service interfaces with annotations to eliminate manual request logic. The framework features a pluggable HTTP transport layer, which decouples request definition from execution by routing network traffic through interchangeable underlying HTTP engines. It provides a comprehensive request management pipeline including interceptors for modifying headers, policy-driven retry logic for failure recover

    Javahttp-clientinterfacejava
    View on GitHub↗9,784
  • imroc/reqimroc avatar

    imroc/req

    4,807View on GitHub↗

    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 cover

    Gogogolanghttp
    View on GitHub↗4,807
  • go-resty/restygo-resty avatar

    go-resty/resty

    11,704View on GitHub↗

    Resty is a high-level HTTP client library for Go designed for consuming REST services. It provides a streamlined interface for executing network requests, managing server-sent event streams, and automatically mapping JSON and XML responses into data structures. The library includes built-in mechanisms for service resilience and traffic management, such as circuit breakers to prevent cascading failures, token-bucket rate limiting, and automated request retries with exponential backoff. It also features client-side load balancing to distribute outgoing traffic across multiple base URLs and requ

    Gobackoffcircuit-breakercurl-command
    View on GitHub↗11,704
  • shazow/urllib3shazow avatar

    shazow/urllib3

    4,026View on GitHub↗

    urllib3 is a Python HTTP client library used to send network requests and receive responses. It provides core components for managing HTTP connection pools, routing traffic through proxies, validating TLS certificates, and executing automatic request retries. The library focuses on network reliability and efficiency by maintaining a system that reuses established connections to multiple hosts to reduce latency. It ensures secure communication through client-side certificate verification and handles transient network errors using policy-based retry logic. The project covers broad networking c

    Python
    View on GitHub↗4,026
See all 30 alternatives to Feign→

Frequently asked questions

What does netflix/feign do?

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.

What are the main features of netflix/feign?

The main features of netflix/feign are: Declarative API Clients, Pluggable Transformation Pipelines, API Request Automation, API Client Generators, Microservices Communications, HTTP Client Libraries, HTTP Client Wrappers, Client Services.

What are some open-source alternatives to netflix/feign?

Open-source alternatives to netflix/feign include: openfeign/feign — Feign is a declarative Java HTTP client framework that maps method signatures to REST API requests. It functions as an… imroc/req — req is a chainable HTTP client library for Go designed to simplify request configuration and automatic response… go-resty/resty — Resty is a high-level HTTP client library for Go designed for consuming REST services. It provides a streamlined… shazow/urllib3 — urllib3 is a Python HTTP client library used to send network requests and receive responses. It provides core… kittinunf/fuel — Fuel is a Kotlin HTTP client library for Android and Kotlin applications that handles both synchronous and… libcpr/cpr — C++ is a high-level HTTP client library and wrapper for libcurl. It provides a C++ interface for making network…