Skip to content

resty

11,632 1 11 MIT
v2.17.2 (14 Feb 2026) Aug 05 2024 58.1 thousand (month)

Resty is an HTTP and REST client library for Go. It is designed to be simple and easy to use, while still providing a lot of powerful features. One of the main benefits of using Resty is that it allows you to make HTTP requests with minimal boilerplate code, while still providing a lot of flexibility and control over the requests.

One of the key features of Resty is its use of chaining. This allows you to chain together multiple methods to build up a request, making the code more readable and easy to understand. For example, you can chain together the R().SetHeader("Accept", "application/json") method to set the Accept header and R().SetQueryParam("param1", "value1") to add a query parameter to the request.

Resty also provides a lot of convenience functions for making common types of requests, such as Get, Post, Put, and Delete. This can be useful if you need to make a simple request quickly and don't want to spend a lot of time configuring the request. Additionally, Resty also provides a way to set a timeout for the request, in case the server takes too long to respond.

Resty also supports HTTP/2 and advanced features like multipart file upload, request and response middlewares, request hooks, and many others.

Overall, Resty is a good choice if you're looking for a simple and easy-to-use HTTP client library for Go. It's a good fit for projects that don't require a lot of customization and need a quick way to make HTTP requests.

Example Use


```go package main

// establish session client client := resty.New() // set proxy for the session client.SetProxy("http://proxyserver:8888") // set retries client. // Set retry count to non zero to enable retries SetRetryCount(3). // You can override initial retry wait time. // Default is 100 milliseconds. SetRetryWaitTime(5 * time.Second). // MaxWaitTime can be overridden as well. // Default is 2 seconds. SetRetryMaxWaitTime(20 * time.Second). // SetRetryAfter sets callback to calculate wait time between retries. // Default (nil) implies exponential backoff with jitter SetRetryAfter(func(client resty.Client, resp resty.Response) (time.Duration, error) { return 0, errors.New("quota exceeded") })

// Make GET request resp, err := client.R(). // we can set query SetQueryParams(map[string]string{ "query": "foo", }). // and headers SetHeader("Accept", "application/json"). Get("https://httpbin.org/get")

// Make Post request resp, err := client.R(). // JSON data SetHeader("Content-Type", "application/json"). SetBody({"username":"testuser", "password":"testpass"}). // or Form Data SetFormData(map[string]string{ "username": "jeeva", "password": "mypass", }). Post("https://httpbin.org/post")

// resty also support request and response middlewares // which allow easy modification of outgoing requests and incoming responses client.OnBeforeRequest(func(c resty.Client, req resty.Request) error { // Now you have access to Client and current Request object // manipulate it as per your need

return nil  // if its success otherwise return error

})

// Registering Response Middleware client.OnAfterResponse(func(c resty.Client, resp resty.Response) error { // Now you have access to Client and current Response object // manipulate it as per your need

return nil  // if its success otherwise return error

}) ```

Alternatives / Similar


req
4,781 v3.57.0 (2025-12-16 09:07:40 ago) Nov 20 2023 compare

Other Languages

53,883 2.33.1 (2026-03-30 16:09:13 ago) Feb 14 2011 compare
8,860 3.3.2 (2023-11-30 14:10:12 ago) Dec 28 2012 compare
15,183 0.28.1 (2024-12-06 15:37:21 ago) Jul 26 2019 compare
16,395 3.13.5 (2026-03-31 21:56:30 ago) Jul 26 2019 compare
108,987 1.15.0 (2026-04-08 16:09:38 ago) Aug 29 2014 compare
got
14,897 15.0.1 (2026-04-08 16:15:35 ago) Mar 27 2014 compare
5,944 v0.6.1 (2024-03-02 18:08:29 ago) Feb 23 2022 compare
1,631 3.5.0 (2026-03-12 22:24:55 ago) Dec 11 2011 compare
16,610 10.1.1 (2024-10-22 17:26:05 ago) Aug 22 2011 compare
primp new
504 1.2.2 (2026-04-03 07:11:15 ago) Jun 01 2024 compare
5,927 2.14.1 (2026-02-07 15:17:15 ago) Dec 19 2009 compare
1,147 7.45.7 (2025-09-24 13:35:56 ago) Feb 25 2003 compare
1,172 1.4.2 (2026-03-20 19:18:25 ago) Oct 31 2009 compare
707 2.9.0 (2025-02-22 01:13:49 ago) Jul 25 2009 compare
5,889 0.24.2 (2026-01-14 22:54:36 ago) Jul 25 2009 compare
4,131 1.6.0 (2026-03-10 12:58:26 ago) Oct 06 2009 compare
985 1.4.8 (2023-08-15 11:00:00 ago) May 06 2012 compare
1,751 0.7.1 (2024-07-13 09:07:25 ago) Feb 23 2022 compare
23,447 7.10.0 (2025-08-23 22:36:01 ago) Nov 14 2011 compare
1,517 1.0.5 (2024-02-12 21:10:00 ago) Nov 22 2014 compare
378 18.1.0 (2025-07-24 23:01:15 ago) Aug 06 2011 compare
1,219 1.1.7 (2020-08-31 21:38:00 ago) Oct 25 2009 compare
2,033 v8.0.8 (2026-03-30 15:14:47 ago) Apr 28 2019 compare
mechanize new
4,440 2.14.0 (2025-01-05 18:30:46 ago) Jul 25 2009 compare
605 25.5.0 (2025-06-03 03:42:30 ago) Dec 28 2012 compare
908 1.1.3 (2026-03-05 00:04:35 ago) Sep 25 2013 compare
505 1.1.4 (2020-02-07 22:04:51 ago) Apr 20 2010 compare
1,001 0.9.2 (2024-12-01 02:55:27 ago) Feb 23 2022 compare
107 1.6.0 (2024-07-19 19:50:00 ago) Nov 09 2016 compare
3,577 v2.0.17 (2025-12-12 17:47:19 ago) Oct 06 2013 compare
1,924 1.3.0 (2024-09-23 13:16:34 ago) Nov 11 2011 compare
1,803 1.0.0 (2024-05-01 11:33:16 ago) Apr 14 2012 compare
165 2.3.0 (2021-03-18 00:10:00 ago) Dec 22 2019 compare
3,104 0.17.0 (2026-03-25 01:20:02 ago) Mar 20 2015 compare
Was this page helpful?