Browse free open source HTTP Clients and projects for Linux below. Use the toggles on the left to filter open source HTTP Clients by OS, license, language, programming language, and project status.

  • Custom VMs From 1 to 96 vCPUs With 99.95% Uptime Icon
    Custom VMs From 1 to 96 vCPUs With 99.95% Uptime

    General-purpose, compute-optimized, or GPU/TPU-accelerated. Built to your exact specs.

    Live migration and automatic failover keep workloads online through maintenance. One free e2-micro VM every month.
    Start Free
  • $300 Free Credits to Build on Google Cloud Icon
    $300 Free Credits to Build on Google Cloud

    New customers can spin up VMs, build with AI, and query data at no cost.

    Put your $300 in credit toward real workloads, then keep building with free monthly usage for 20+ products. No commitment and no charge until you upgrade.
    Start Free
  • 1
    Coraza

    Coraza

    OWASP Coraza WAF is a golang modsecurity compatible firewall library

    Coraza is an open-source, enterprise-grade, high-performance Web Application Firewall (WAF) ready to protect your beloved applications. It is written in Go, supports ModSecurity SecLang rulesets and is 100% compatible with the OWASP Core Rule Set. Coraza is a drop-in alternative to replace the soon-to-be abandoned Trustwave ModSecurity Engine and supports industry-standard SecLang rule sets. Coraza runs the OWASP Core Rule Set (CRS) to protect your web applications from a wide range of attacks, including the OWASP Top Ten, with a minimum of false alerts. CRS protects from many common attack categories including: SQL Injection (SQLi), Cross Site Scripting (XSS), PHP & Java Code Injection, HTTPoxy, Shellshock, Scripting/Scanner/Bot Detection & Metadata & Error Leakages. Coraza is a library at its core, with many integrations to deploy on-premise Web Application Firewall instances.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 2
    HTTP Kit

    HTTP Kit

    Clojure HTTP server/client library with WebSocket support

    http-kit is a minimalist, event-driven, high-performance Clojure HTTP server/client library with WebSocket and asynchronous support. A simple, high-performance event-driven HTTP client+server for Clojure. HTTP Kit is an (almost) drop-in replacement for the standard Ring Jetty adapter. So you can use it with all your current libraries (e.g. Compojure) and middleware. Using an event-driven architecture like Nginx, HTTP-kit is very, very fast. It comfortably handles tens of thousands of requests/sec on even midrange hardware. Here is another test about how it stacks up with others. It's not only fast, but efficient! Each connection costs nothing but a few kB of memory. RAM usage grows O(n) with connections. Written from the ground-up to be lean, the entire client/server is available as a single ~90kB JAR with zero dependencies and ~3k lines of (mostly Java) code. Synchronous is simple. Asynchronous is fast & flexible.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 3
    Hoverfly

    Hoverfly

    Lightweight service virtualization/ API simulation / API mocking tool

    Hoverfly is a lightweight, open source API simulation tool. Using Hoverfly, you can create realistic simulations of the APIs your application depends on. Replace unreliable test systems and restrictive API sandboxes with high-performance simulations in seconds. Run on MacOS, Windows or Linux, or use native Java or Python language bindings to get started quickly. Simulate API latency or failure when required by writing custom scripts in the language of your choice.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 4
    Interactsh

    Interactsh

    An OOB interaction gathering server and client library

    Interactsh is an open-source tool for detecting out-of-band interactions. It is a tool designed to detect vulnerabilities that cause external interactions. Interactsh Cli client requires go1.17+ to install successfully. interactsh-client with -sf, -session-file flag can be used store/read the current session information from user defined file which is useful to resume the same session to poll the interactions even after the client gets stopped or closed. Running the interactsh-client in verbose mode (v) to see the whole request and response, along with an output file to analyze afterwards. Using the server flag, interactsh-client can be configured to connect with a self-hosted Interactsh server, this flag accepts single or multiple server separated by comma. Default servers are subject to change/rotate/down at any time, thus we recommend using a self-hosted interactsh server if you are experiencing issues with the default server.
    Downloads: 5 This Week
    Last Update:
    See Project
  • Ship Agents Faster Icon
    Ship Agents Faster

    Transform your applications and workflows into powerful agentic systems at global scale.

    Gemini Enterprise Agent Platform lets you rapidly build, scale, govern and optimize production-ready agents grounded in your organization's data. The platform enables developers to build custom or pre-built agents for virtually any use case. New customers get $300 in free credits.
    Start Free
  • 5
    urllib3

    urllib3

    Python HTTP library with thread-safe connection pooling

    urllib3 is a powerful, user-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. Thread safety, connection pooling. Client-side TLS/SSL verification. File uploads with multipart encoding. Helpers for retrying requests and dealing with HTTP redirects. Support for gzip, deflate, brotli, and zstd encoding. Proxy support for HTTP and SOCKS. 100% test coverage. Professional support for urllib3 is available as part of the Tidelift Subscription. Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 6
    RestSharp

    RestSharp

    Simple REST and HTTP API Client for .NET

    RestSharp is probably the most popular HTTP client library for .NET. Featuring automatic serialization and deserialization, request and response type detection, variety of authentications and other useful features, it is being used by hundreds of thousands of projects. RestSharp passed over 32 million downloads on NuGet, with average daily download count of 10,000. It's being used by many popular OSS projects, including Roslyn and Swagger. The main purpose of RestSharp is to make synchronous and asynchronous calls to remote resources over HTTP. As the name suggests, the main audience of RestSharp are developers who use REST APIs. However, RestSharp can call any API over HTTP (but not HTTP/2), as long as you have the resource URI and request parameters that you want to send comply with W3C HTTP standards. RestSharp can take care of serializing the request body to JSON or XML and deserialize the response. It can also form a valid request URI based on different parameter kinds.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 7
    libhv

    libhv

    Network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client

    Like libevent, libev, and libuv, libhv provides event loop with non-blocking IO and timer, but simpler api and richer protocols. Cross-platform (Linux, Windows, MacOS, BSD, Solaris, Android, iOS) High-performance EventLoop (IO, timer, idle, custom) TCP/UDP client/server/proxy. TCP supports heartbeat, reconnect, upstream, MultiThread-safe write and close, etc. Built-in common unpacking modes (FixedLength, Delimiter, LengthField) RUDP support: WITH_KCP. SSL/TLS support: (via WITH_OPENSSL or WITH_GNUTLS or WITH_MBEDTLS) HTTP client/server (support https http1/x http2 grpc). HTTP supports static service, indexof service, proxy service, sync/async API handler. HTTP supports RESTful, router, middleware, keep-alive, chunked, SSE, etc. WebSocket client/server.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 8

    Feign

    Make writing Java http clients easier

    Feign is a Java to HTTP client binder that was built primarily to make writing Java http clients easier. Inspired by previous projects Retrofit, JAXRS-2.0 and WebSocket, Feign was designed to reduce the complexity that is often involved in binding the Denominator uniformly to HTTP APIs, no matter the ReSTfulness. Feign works by processing annotations into a templatized request, to which arguments are applied in a straightforward manner before output. While it may only support text-based APIs, it simplifies system aspects dramatically and makes it much easier to unit test your conversions. Feign makes use of great tools like Jersey and CXF for writing Java clients for ReST or SOAP services. It also lets you write your own code on top of http libraries, and connects your code to http APIs with little overhead.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 9
    Jimp

    Jimp

    An image processing library written entirely in JavaScript for Node

    An image processing library for Node written entirely in JavaScript, with zero native dependencies. If you're using this library with TypeScript the method of importing slightly differs from JavaScript. Instead of using require, you must import it with ES6 default import scheme. If you're using a web bundles (webpack, rollup, parcel) you can benefit from using the module build of jimp. Using the module build will allow your bundler to understand your code better and exclude things you aren't using. If you're using webpack you can set process.browser to true and your build of jimp will exclude certain parts, making it load faster. The static Jimp.read method takes the path to a file, URL, dimensions, a Jimp instance or a buffer and returns a Promise. In some cases, you need to pass additional parameters with an image's URL.
    Downloads: 3 This Week
    Last Update:
    See Project
  • Build Data Resilience - Take the Assessment Today Icon
    Build Data Resilience - Take the Assessment Today

    Can you recover when it matters most? Take this quick assessment to identify gaps and build greater recovery confidence.

    Is your recovery strategy as strong as you think? Take this quick self-assessment to check your recovery readiness and gain tailored insights. In only 2 minutes, you'll learn where you fall on the recovery readiness scale.
    Take the Assessment
  • 10
    Faraday

    Faraday

    Simple, but flexible HTTP client library, with support for backends

    Faraday is an HTTP client library abstraction layer that provides a common interface over many adapters (such as Net::HTTP) and embraces the concept of Rack middleware when processing the request/response cycle. You probably don't want to use Faraday directly in your project, as it will lack an actual client library to perform requests. Instead, you probably want to have a look at Awesome Faraday for a list of available adapters. The best starting point is the Faraday Website, with its introduction and explanation. This library aims to support and is tested against the currently officially supported Ruby implementations. This means that, even without a major release, we could add or drop support for Ruby versions, following their EOL. Currently that means we support Ruby 2.6+. You can also install the faraday_middleware extension gem to access a collection of useful Faraday middleware.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 11
    Nginx-Clojure

    Nginx-Clojure

    Nginx module for embedding Clojure or Java or Groovy programs

    Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers. Compatible with Ring and obviously supports those Ring-based frameworks, such as Compojure, etc. HTTP Services by using Clojure / Java / Groovy to write simple handlers for HTTP services. A build-in Jersey container to support java standard RESTful web services (JAX-RS 2.0). Tomcat 8 embedding support (so servlet 3.1/jsp/sendfile/JSR-356 WebSocket work within nginx!). Dynamic proxying by using Clojure / Java / Groovy to write a simple nginx rewrite handler to set var or return errors before a proxy pass or content ring handler. The non-blocking coroutine-based socket is Compatible with Java Socket API and works well with largely existing java libraries such as apache HTTP client, mysql jdbc drivers. With this feature, one java main thread can handle thousands of connections. Handle multiple sockets parallel in sub coroutines.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 12
    Tesla

    Tesla

    The flexible HTTP client library for Elixir

    The flexible HTTP client library for Elixir, with support for middleware and multiple adapters. Tesla is an HTTP client loosely based on Faraday. It embraces the concept of middleware when processing the request/response cycle. Define module with use Tesla and choose from a variety of middleware. Tesla is built around the concept of composable middlewares. This is very similar to how Plug Router works. All HTTP functions, such as Tesla.get/3 and Tesla.post/4, can take a dynamic client as the first argument. This allows using convenient syntax for modifying the behavior in runtime. Tesla supports multiple HTTP adapter that do the actual HTTP request processing. Each piece of the stream will be encoded as JSON and sent as a new line (conforming to JSON stream format). You can set the adapter to Tesla.Mock in tests.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 13
    TinyGSM

    TinyGSM

    A small Arduino library for GSM modules, that just works

    A small Arduino library for GSM modules that just works. This library is easy to integrate with lots of sketches that use Ethernet or WiFi. PubSubClient (MQTT), Blynk, HTTP Client, and File Download examples are provided. Arduino GSM library uses 15868 bytes (49%) of Flash and 1113 bytes (54%) of RAM in a similar scenario. TinyGSM also pulls data gently from the modem (whenever possible), so it can operate on very little RAM. Now, you have more space for your experiments. TCP (HTTP, MQTT, Blynk, ...) All modules support TCP connections. Most modules support multiple simultaneous connections. TCP and SSL connections can usually be mixed up to the total number of possible connections. Many GSM modems, WiFi, and radio modules can be controlled by sending AT commands over Serial. TinyGSM knows which commands to send, and how to handle AT responses, and wraps that into the standard Arduino Client interface.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 14
    plow

    plow

    A high-performance HTTP benchmarking tool

    Plow is an HTTP(S) benchmarking tool, written in Golang. It uses excellent fast HTTP instead of Go's default net/http due to its lightning-fast performance. Plow runs at specified connections (option -c) concurrently and real-time records summary statistics, histogram of execution time and calculates percentiles to display on Web UI and terminal. It can run for a set duration( option -d), for a fixed number of requests(option -n), or until Ctrl-C is interrupted. The implementation of real-time computing Histograms and Quantiles using stream-based algorithms inspired by Prometheus with low memory and CPU bounds. so it's almost no additional performance overhead for benchmarking.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 15
    wechat-bot

    wechat-bot

    PC WeChat chat robot with secondary development interface

    The client sends a friend text message (supports websocket and HTTP). The client obtains the wxid and name of the friend in the address book (supports websocket and HTTP). The client sends a picture to a friend (supports websocket and HTTP). Sends an AT message (support websocket and HTTP). Send attachments (only support HTTP, weboscket). Get chatroom member list (wxid) and nickname (support websocket and HTTP). Please refer to the sample code of client.js (websocket client) and httpclient.js (http client). You can inject it once. If you want to re-inject, please exit WeChat, restart WeChat and then inject it.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 16
    POCO C++ Libraries

    POCO C++ Libraries

    Cross-platform C++ libraries with a network/internet focus.

    NOTE: Current source code as well as bugs/patches are on GitHub: https://github.com/pocoproject/poco/ C++ class libraries for network-centric, portable applications, integrated perfectly with the C++ Standard Library. Includes network protocols (Sockets, HTTP, FTP, SMTP, POP3, etc.), SQL database access and XML parsing. Licensed under Boost license.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 17
    Drill

    Drill

    Drill is an HTTP load testing application written in Rust

    Drill is an HTTP load-testing application written in Rust. The main goal for this project is to build a really lightweight tool as an alternative to other that require JVM and other stuff. You can write benchmark files, in YAML format, describing all the stuff you want to test. It was inspired by Ansible syntax because it is really easy to use and extend. As you can see, you can play with interpolations in different ways. This will let you specify a benchmark with different requests and dependencies between them. Right now, the easiest way to get drill is to go to the latest release page and download the binary file for your platform. OpenSSL is needed in order to compile Drill, whether it is through cargo install or when compiling from source with cargo build.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 18
    HTTP Prompt

    HTTP Prompt

    An interactive command-line HTTP and API testing client

    HTTP Prompt is an interactive command-line HTTP client featuring autocomplete and syntax highlighting. You'll never have to memorize the whole commands and HTTP headers thanks to autocomplete with fuzzy matching. Improve readability by rendering JSON, HTML and commands with 27 builtin color themes, borrowed from Pygments. Designed to work with and built on top of HTTPie, HTTP Prompt makes a perfect companion for HTTPie. Cookie-based authentication made easy as incoming cookies are automatically set into your next request. With pipelines and output redirection, HTTP Prompt works seamlessly with your existing command line tools such as jq. Specify an OpenAPI/Swagger specification then you'll be able to explore API endpoints with ls like a filesystem.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 19
    Java API for GitHub

    Java API for GitHub

    Java API for GitHub

    This library defines an object oriented representation of the GitHub API. By "object oriented" we mean there are classes that correspond to the domain model of GitHub (such as GHUser and GHRepository), operations that act on them as defined as methods (such as GHUser.follow()), and those object references are used in favor of using string handle (such as GHUser.isMemberOf(GHOrganization) instead of GHUser.isMemberOf(String)) The library supports both github.com and GitHub Enterprise. Most of the GitHub APIs are covered, although there are some corners that are still not yet implemented. The library allows connecting to GitHub via several different authentication mechanisms. This library defines a common convention so that applications using this library will look at a consistent location. In this convention, the library looks at ~/.github property file. The content of the files depends on the way you want this library to authenticate as shown.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 20
    Requests for PHP

    Requests for PHP

    Requests for PHP is a humble HTTP request library

    Requests is a HTTP library written in PHP, for human beings. It is roughly based on the API from the excellent Requests Python library. Requests is ISC Licensed (similar to the new BSD license) and has no dependencies, except for PHP 5.6+. Despite PHP’s use as a language for the web, its tools for sending HTTP requests are severely lacking. cURL has an interesting API, to say the least, and you can’t always rely on it being available. Sockets provide only low-level access and require you to build most of the HTTP response parsing yourself. Requests allows you to send HEAD, GET, POST, PUT, DELETE, and PATCH HTTP requests. You can add headers, form data, multipart files, and parameters with basic arrays, and access the response data in the same way. Requests uses cURL and fsockopen, depending on what your system has available, but abstracts all the nasty stuff out of your way, providing a consistent API.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 21
    axios-extensions

    axios-extensions

    axios extensions lib, including throttle, cache, retry features etc.

    A non-invasive, simple, reliable collection of axios extension. It is highly recommended to enable the request logging recorder in the development environment(disabled by default). Besides configuring the request through the cacheAdapterEnhancer, we can enjoy more advanced features via configuring every individual request.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 22
    docker-java

    docker-java

    Java Docker API Client

    Java Docker API Client. To start using docker-java , you need to add at least two dependencies. You will need an instance of DockerClientConfig to tell the library how to access Docker, which credentials to use to pull from Docker registries, etc. The builder is available and allows you to configure every property of the client. Should you need to customize the Jackson's ObjectMapper used by docker-java, you can create your own DockerClientConfig. Once you decided which transport to use, you will need to instantiate an HTTP client. Once you have an HTTP client, you can make raw requests to the Docker daemon directly. To get an instance of DockerClient, you need to pass both DockerClientConfig and DockerHttpClient.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 23
    hyper for Rust

    hyper for Rust

    An HTTP library for Rust

    hyper is a fast HTTP implementation written in and for Rust. A Client for talking to web services. A Server for building those web services. Blazing fast thanks to Rust. High concurrency with non-blocking sockets. HTTP/1 and HTTP/2 support. hyper is a relatively low-level library, meant to be a building block for libraries and applications. If you are looking for a convenient HTTP client, then you may wish to consider reqwest. If you are looking for a convenient HTTP server, then you may wish to consider warp. Both are built on top of this library. A Service lets you define how to respond to incoming requests. While it is possible to implement the trait directly, there are a few patterns that are common when using Hyper. We’ve included some helpers for when these patterns fit our needs. An echo server will listen for incoming connections and send back the request body as the response body on POST requests.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 24
    NetTool is a developer tool for monitoring and manipulating application-level network messages, particularly useful for debugging web applications and web services. There are two components to NetTool: the HTTP Client, and the TCP Tunnel.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 25
    A XML pull-parse library for Java 1.2, designed for processing XML protocol messages in the most efficient way possible. Contains a complete HTTP client library.
    Downloads: 1 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • 3
  • Next