#HTTP Client

Open-source projects categorized as HTTP Client | Edit details

Top 23 HTTP Client Open-Source Projects

  • GitHub repo axios

    Promise based HTTP client for the browser and node.js

    Project mention: Five conductive - and five innovative npm packages | dev.to | 2021-05-15

    NPM's request and axios are still the most common and mature top-dog clients, but new challengers are emerging - one of which is the bent package. It consists out of less than 15% of the above packages' size, and embraces modern Javascript practices. As it's fully asynchronous, it only works in an async context.

  • GitHub repo httpie

    As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie

    Project mention: https://np.reddit.com/r/emacs/comments/mz6lyg/zbmath/gwa4pyj/ | reddit.com/r/backtickbot | 2021-04-29

    (httpie & jq were used in the following example)

  • GitHub repo Postwoman

    👽 Open source API development ecosystem https://hoppscotch.io

    Project mention: Building a Discord bot with Azure Logic Apps | dev.to | 2021-05-06

    Since calling the webhook is as easy as posting an HTTP request to an URL, you can easily test the content you're building using tools like Postman, hoppscoth.io or Visual Studio Code using the REST Client extension.

  • GitHub repo Guzzle

    Guzzle, an extensible PHP HTTP client

    Project mention: Always check for built-in WordPress functions for whatever you're trying to do. | reddit.com/r/Wordpress | 2021-03-03

    You can achieve this (and a lot more) using, e.g. guzzle, a "PHP HTTP client that makes it easy to send HTTP requests and trivial to integrate with web services".

  • GitHub repo insomnia

    The Open Source API Client and Design Platform for GraphQL, REST and gRPC

    Project mention: Sonarr /w Headers error | reddit.com/r/LunaSeaApp | 2021-04-27

    You can try downloading a free REST API tool (Postman, Insomnia) and making an API call to your instance with the headers set. You can make a GET HTTP call with no request body to /api/system/status, as this is the exact call made for the connection test.

  • GitHub repo http client/server for asyncio

    Asynchronous HTTP client/server framework for asyncio and Python

    Project mention: Building an API with FastAPI | dev.to | 2021-04-13

    I executed the script 3 times making 20 requests on each execution. Ok now lets replace the synchronous requests library by the asynchronous aiohttp library. Furthermore, we add the async/await keywords on the right positions. Our final code will look like this:

  • GitHub repo got

    🌐 Human-friendly and powerful HTTP request library for Node.js

    Project mention: Why should you try Expo - it is a great platform and if you have never tried or you have experience with old versions you probably should try it. | reddit.com/r/reactnative | 2021-04-15

    My corporate network is pretty locked down and all traffic runs through a proxy. There have been a number of times where the Expo CLI has exploded or hung or just silently failed due to failure to respect system settings for things like proxies. What's odd is that not everything fails, only some things. Sometimes it's due to delegating certain requests to other cli libraries which themselves don't respect these settings correctly. For these I generally try to track down the bugs and open issues / submit PRs where possible, but they don't always get picked up. My "favorite" experience with this was when a package owner closed an issue claiming proxy support should instead be added to the lower level package (that he also owns) but then closed the proxy support issue on that lower level package claiming "it's just too complicated" and passing the buck back up to package consumers, creating a nice catch-22.

  • GitHub repo HTTP Prompt

    An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie

    Project mention: Show HN: Ht – HTTPie Clone in Rust | news.ycombinator.com | 2021-02-05

    And use http-prompt, because it's awesome: https://github.com/httpie/http-prompt

  • GitHub repo hyper

    An HTTP library for Rust (by hyperium)

    Project mention: Preparing Rustls for Wider Adoption | news.ycombinator.com | 2021-04-20
  • GitHub repo Feign

    Feign makes writing java http clients easier

    Project mention: How are library developers expected to test multi-release jars? | reddit.com/r/java | 2021-05-02

    At the risk of doxxing myself, I'm a contributer attempting to fix this issue with this pr. The project has existed for a while now, and since I'm not part of the openfeign team, so the final solution they end up using isn't up to me. So there's technical debt to deal with (how the project is built and tested currently) and whether or not multi-release jars are the best solution in this case.

  • GitHub repo ky

    🌳 Tiny & elegant JavaScript HTTP client based on the browser Fetch API

    Project mention: How Do You Fetch Data from Reactive REST API with Axios? | reddit.com/r/reactjs | 2021-03-04

    I've never done it but this article seems to show a way to do it. You'll need to use Fetch over Axios as it seems only the Fetch API supports streaming and Axios is XHR based. If you want something a little higher level than Fetch, you could look at Ky which is fetch based but has some extra niceties built-in.

  • GitHub repo node-fetch

    A light-weight module that brings the Fetch API to Node.js

    Project mention: Build a Jamstack subscription form with Netlify forms and Fauna - Part 2 | dev.to | 2021-05-14

    Now, let's create a function connected to the Fauna database and interact with it using the GraphQL queries. To do that, we need to make XMLHTTPRequest(Ajax Calls) from the function. We will use a light-weight library called, node-fetch for this.

  • GitHub repo AndroidNetworking

    🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀

  • GitHub repo POCO

    The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.

    Project mention: Higher level threading in C++ | dev.to | 2021-04-29

    This is why I generally prefer Threadpools, or a producer-consumer pattern. Both these patterns require a queue that contains the jobs or units of work. Worker threads will continually try to read items from such a queue and process the item. There are some libraries that offer threadsafe queue's and/or threadpools, such as poco, QT or boost, but it's actually fairly simple to implement your own, using only the STL. So let's implement one now!

  • GitHub repo resty

    Simple HTTP and REST client library for Go

    Project mention: ¿Como estructurar tu aplicación en Go? | dev.to | 2021-05-09
  • GitHub repo reqwest

    An easy and powerful Rust HTTP Client

    Project mention: Linus Torvalds on where Rust will fit into Linux | reddit.com/r/programming | 2021-03-23

    Only five required dependencies. The rest are for supporting different configurations the user of the library might want to use: https://github.com/seanmonstar/reqwest/blob/master/Cargo.toml

  • GitHub repo Fuel

    The easiest HTTP networking library for Kotlin/Android

    Project mention: Customizing your GitHub profile - Scripting | dev.to | 2020-09-13

    But when I started to use it, I faced an issue. In a traditional Maven project, the workaround would be to add the dependency in the available version, and thus override the default one. Yet, it doesn't work with Kotlin Scripting - it's not possible to override versions in the same way.

  • GitHub repo Requests

    Requests for PHP is a humble HTTP request library. It simplifies how you interact with other sites and takes away all your worries. (by rmccue)

  • GitHub repo http-request

    Java HTTP Request Library

  • GitHub repo Jetty

    Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more

    Project mention: Can someone help me understand ring's async handlers (specifically, with Jetty) | reddit.com/r/Clojure | 2021-03-30

    I've now got this working, sort of, so thank you for that! The sort of is because I'm getting the response I expected, but I'm also getting an exception from Jetty for every request. I've followed your pattern as given above, and when I curl the server I get the expected data back. But the REPL I'm running it in for local dev also gives the error Exception in thread "async-dispatch-[0-9]+" org.eclipse.jetty.http.BadMessageException: 500: No version. Googling that leads me to https://github.com/eclipse/jetty.project/issues/650, which seems to suggest that something else is attempting to handle the message a second time, while my handler is parked for a response in the go block? If I wrap the (a/go ...) in (a/, to effectively force it to be synchronous again, the error goes away.

  • GitHub repo Armeria

    Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.

    Project mention: sttp now suppots Armeria backend | reddit.com/r/scala | 2021-02-23

    Armeria which fully supports Reactive Streams and non-blocking IO now powers sttp as a backend.

  • GitHub repo Boost.Beast

    HTTP and WebSocket built on Boost.Asio in C++11

    Project mention: Building HTTP Service in C++ (Using Modern Tools) | dev.to | 2020-12-05

    The HTTP service and is mostly based on this particular example from Boost Beast library. I modified it, replacing plaintext responses with json, and adding Boost Log library.

  • GitHub repo HTTP

    HTTP (The Gem! a.k.a. http.rb) - a fast Ruby HTTP client with a chainable API, streaming support, and timeouts

    Project mention: The Best Ruby HTTP clients for 2021 | reddit.com/r/ruby | 2021-04-28

    I actually like HTTP.rb's API more, but they still can't make a decision about "base URL" API, which is quite valuable for API wrappers, e.g. @client = HTTPLibrary.new('https://api.base.com/v2/') and then @client.get('/foo').

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-05-15.


What are some of the best open-source HTTP Client projects? This list will help you:

Project Stars
1 axios 84,361
2 httpie 50,726
3 Postwoman 28,982
4 Guzzle 20,781
5 insomnia 16,295
6 http client/server for asyncio 11,184
7 got 9,370
8 HTTP Prompt 8,159
9 hyper 7,920
10 Feign 6,942
11 ky 6,426
12 node-fetch 6,378
13 AndroidNetworking 5,222
14 POCO 5,182
15 resty 4,217
16 reqwest 4,053
17 Fuel 3,893
18 Requests 3,384
19 http-request 3,182
20 Jetty 3,110
21 Armeria 3,105
22 Boost.Beast 3,001
23 HTTP 2,735