Skip to content


NA 90 10 2,978
436 (month) Mar 20 2015 0.12.0(6 years ago)
875 4 8 MIT
0.11.0(3 years ago) Sep 25 2013 179.5 thousand (month)

http is an HTTP library for Ruby, it's a fork of the Ruby standard library Net::HTTP. It is designed to provide a more modern and consistent API for making HTTP requests and handling responses.

One of the main goals of http is to simplify the process of making HTTP requests and handling responses. It provides a consistent API for making requests and handling responses across different versions of Ruby and different HTTP libraries, making it easier to write cross-compatible code.

http supports all the standard HTTP methods such as GET, POST, PUT, DELETE, and PATCH, and allows you to set headers, query parameters, and request bodies.

Pure Ruby, framework and transport agnostic, implementation of HTTP/2 protocol and HPACK header compression with support for:

  • Binary framing parsing and encoding
  • Stream multiplexing and prioritization
  • Connection and stream flow control
  • Header compression and server push
  • Connection and stream management
  • And more... see API docs

Protocol specifications:

  • Hypertext Transfer Protocol Version 2 (RFC 7540)
  • HPACK: Header Compression for HTTP/2 (RFC 7541)



Example Use

require 'http'

# GET request
response = HTTP.get("")
puts response.body
puts response.status
puts response.headers

# POST request
response ="", json: { title: 'foo', body: 'bar', userId: 1 })
puts response.body
require 'http/2'

# GET request
client =
response = client.get("")
puts response.body

# POST reuqest
data = { name: "value" }
response ="", data)

Alternatives / Similar