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.