A simple, feature-rich HTTP, REST, and SSE client library for Go.
Resty is a Go library that provides a simple yet powerful HTTP client for making REST API calls and consuming Server-Sent Events (SSE). It solves the problem of verbose HTTP client code in Go by offering a chainable API with built-in features like automatic retries, middleware hooks, and authentication support.
Go developers building applications that interact with REST APIs, microservices, or real-time event streams. It's particularly useful for backend services, CLI tools, and API clients that need robust HTTP communication.
Developers choose Resty because it dramatically reduces HTTP client boilerplate while providing enterprise-grade features like retry logic, middleware, and debugging tools. Its intuitive API and comprehensive documentation make it easier to write reliable HTTP code than using Go's standard library directly.
Simple HTTP, REST, and SSE client library for Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables readable, Go-like HTTP requests with method chaining, significantly reducing boilerplate code compared to standard library usage.
Offers automatic retries with exponential backoff and custom conditions, improving reliability for API calls without manual implementation.
Supports Basic Auth, Bearer tokens, OAuth2, and custom schemes out of the box, covering most common API integration needs.
Provides detailed logging and tracing capabilities, making it easier to troubleshoot HTTP interactions during development.
Includes native support for Server-Sent Events and simplified multipart file uploads/downloads, addressing specific real-world use cases.
Adds an external library dependency, which can complicate dependency management and introduce slight performance overhead versus raw net/http calls.
Focuses on REST and SSE; lacks built-in features for WebSockets or gRPC, requiring additional libraries for those protocols.
Adopting Resty's fluent interface can make code tightly coupled to its API, potentially hindering migration to other clients in the future.