awesome-repositories.com
Blog
MCP
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
go-resty avatar

go-resty/resty

0
View on GitHub↗
11,704 stars·783 forks·Go·MIT·13 viewsresty.dev↗

Resty

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 request hedging to reduce tail latency.

The capability surface covers request interception via middleware, detailed network observability through request tracing and correlation tracking, and support for multipart form data uploads. For debugging, the library can generate curl commands from requests and provide customized network traffic logging.

Security is handled through implementations of HTTP digest authentication.

Features

  • REST APIs - Provides a high-level Go client for consuming REST services with automatic JSON and XML parsing.
  • HTTP Client Libraries - Provides a high-level, streamlined interface for executing network requests to remote servers and processing responses.
  • Request Retries - Automatically repeats failed network requests based on specific status codes using exponential backoff.
  • Server-Sent Events - Consumes real-time data streams from servers using long-lived connections and event callbacks.
  • Circuit Breakers - Blocks requests to downstream services when a failure threshold is reached to prevent cascading system collapses.
  • Request Lifecycle Management - Associates Go contexts with requests to handle cancellation signals and timeouts across network calls.
  • Resilient Networking Patterns - Implements service stability patterns including request retries, circuit breakers and rate limiting.
  • Retry Strategies - Automatically repeats failed network calls using increasing delay intervals based on status codes or errors.
  • Request Interception Middleware - Executes pluggable functions to resolve addresses, inject credentials, and prepare request bodies before dispatch.
  • REST Clients - Functions as a REST API client with automatic content-type detection and data serialization.
  • Response Decoders - Parses incoming response streams into data structures using content-type headers for various object formats.
  • cURL Command Generators - Converts programmatic HTTP requests into curl command strings for debugging and sharing.
  • Response Parsing Utilities - Extracts status codes, headers, and cookies from executed network requests as strings or byte slices.
  • Automatic Body Deserializers - Automatically converts JSON response bodies into Go objects, lists, or streamed objects based on content type.
  • High Availability Routing - Ensures continuous connectivity by distributing traffic across multiple URLs using load balancing and hedging.
  • Response Decompression - Automatically decompresses HTTP response bodies using formats like gzip and deflate via the content-encoding header.
  • HTTP Request Debugging - Supports network troubleshooting by logging detailed request timings, capturing headers and generating curl commands.
  • Load Balancers - Implements client-side load balancing to distribute outgoing network traffic across multiple base URLs.
  • Network Traffic Inspectors - Captures and formats request and response details, including headers and bodies, for network debugging.
  • Request Hedging - Sends multiple parallel requests with a configured delay, returning the first successful response to reduce tail latency.
  • Request Interception Middleware - Ships a middleware system to intercept request and response lifecycles for credential injection and logging.
  • Request Rate Limiting - Includes token-bucket rate limiting to control the frequency of outgoing requests and prevent API quota exhaustion.
  • Request Correlation - Assigns unique correlation IDs to requests to relate individual network calls across distributed logs.
  • Request Tracing - Records detailed timing and connection metrics, including DNS lookup and TLS handshake duration.
  • Multipart Upload Utilities - Provides utilities for sending files and form fields using the multipart/form-data content type.
  • Request and Response Transformers - Binds response bodies directly into specified result objects or error structures for automatic parsing.
  • Content-Type Based Deserializers - Maps response bodies to Go structures by detecting the media type header and selecting the appropriate decoder.
  • Request Body Handling - Transforms data structures into wire formats based on the request content-type header.
  • Server-Sent Events - Provides a client for consuming real-time data streams via the Server-Sent Events protocol.
  • Client Libraries - Go HTTP client inspired by Ruby's rest-client.
  • HTTP Clients - Simple HTTP and REST client.

Star history

Star history chart for go-resty/restyStar history chart for go-resty/resty

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 Resty

Similar open-source projects, ranked by how many features they share with Resty.
  • encode/httpxencode avatar

    encode/httpx

    15,090View on GitHub↗

    This project is a comprehensive Python network request framework designed for both synchronous and asynchronous HTTP communication. It provides a high-performance client capable of executing non-blocking requests within event-driven applications, while also supporting standard blocking calls for simpler scripts. The library is built to operate natively across diverse asynchronous runtimes, automatically detecting and utilizing the underlying event loop for concurrency. What distinguishes this library is its modular architecture, which decouples request construction from network execution thro

    Pythonasynciohttppython
    View on GitHub↗15,090
  • forwardemail/superagentforwardemail avatar

    forwardemail/superagent

    16,649View on GitHub↗

    Superagent is an isomorphic JavaScript HTTP client for sending network requests and processing responses across both Node.js and web browser environments. It provides a fluent request builder that uses a chainable interface to construct complex network requests with custom headers, query strings, and bodies. The library functions as a runtime-agnostic request adapter, allowing a single codebase to work consistently across different environments. It includes specialized capabilities such as an HTTP/2 client for forcing the HTTP/2 protocol and a Node.js agent for managing Unix socket connection

    JavaScript
    View on GitHub↗16,649
  • guzzle/guzzleguzzle avatar

    guzzle/guzzle

    23,453View on GitHub↗

    Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a concurrent HTTP request manager, an HTTP stream handler, and a middleware-based HTTP pipeline. The project is a PSR-7 compliant client, utilizing standardized PHP interfaces for requests, responses, and streams. The library differentiates itself through a customizable functional handler stack that allows for the interception and modification of the request and response lifecycle. It features an adapter-based transport system that enables swapping between network implementations,

    PHP
    View on GitHub↗23,453
  • urllib3/urllib3urllib3 avatar

    urllib3/urllib3

    4,026View on GitHub↗

    urllib3 is a Python HTTP client library used for sending network requests and receiving responses. It functions as an HTTP connection pool manager and a TLS certificate validator to ensure secure communication between endpoints. The library provides a system for maintaining reusable network connections to reduce the overhead of repeated handshakes. It also serves as an HTTP proxy client capable of routing requests through proxy servers to manage origin identity or bypass firewalls. The tool covers programmatic file uploads via multipart encoding and automated network resilience through the u

    Pythonhttphttp-clientpython
    View on GitHub↗4,026
See all 30 alternatives to Resty→

Frequently asked questions

What does go-resty/resty do?

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.

What are the main features of go-resty/resty?

The main features of go-resty/resty are: REST APIs, HTTP Client Libraries, Request Retries, Server-Sent Events, Circuit Breakers, Request Lifecycle Management, Resilient Networking Patterns, Retry Strategies.

What are some open-source alternatives to go-resty/resty?

Open-source alternatives to go-resty/resty include: encode/httpx — This project is a comprehensive Python network request framework designed for both synchronous and asynchronous HTTP… forwardemail/superagent — Superagent is an isomorphic JavaScript HTTP client for sending network requests and processing responses across both… guzzle/guzzle — Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a… urllib3/urllib3 — urllib3 is a Python HTTP client library used for sending network requests and receiving responses. It functions as an… sindresorhus/got — Got is a promise-based HTTP request library for Node.js that supports HTTP/2 and streaming. It provides a system for… jnunemaker/httparty — HTTParty is a Ruby HTTP client library designed for building standardized API clients. It abstracts low-level network…