All Projects → gonetx → httpit

gonetx / httpit

Licence: MIT license
A rapid http(s) benchmark tool written in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to httpit

Agoo
A High Performance HTTP Server for Ruby
Stars: ✭ 679 (+335.26%)
Mutual labels:  fast, benchmark, https
Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (+3326.92%)
Mutual labels:  fast, https
Awesome Http Benchmark
HTTP(S) benchmark tools, testing/debugging, & restAPI (RESTful)
Stars: ✭ 2,236 (+1333.33%)
Mutual labels:  benchmark, https
streamalg
Extensible stream pipelines with object algebras.
Stars: ✭ 26 (-83.33%)
Mutual labels:  benchmark, pipeline
utils
⚡ A collection of common functions but with better performance, less allocations and less dependencies created for Fiber.
Stars: ✭ 21 (-86.54%)
Mutual labels:  fast, benchmark
moros
A modern http(s) benchmark tool
Stars: ✭ 14 (-91.03%)
Mutual labels:  benchmark, https
HArray
Fastest Trie structure (Linux & Windows)
Stars: ✭ 89 (-42.95%)
Mutual labels:  fast, benchmark
Apos.Content
Content builder library for MonoGame.
Stars: ✭ 14 (-91.03%)
Mutual labels:  pipeline
jenkins-terraform-pipeline
create a jenkins pipeline which uses terraform to manage AWS resources
Stars: ✭ 17 (-89.1%)
Mutual labels:  pipeline
hyperdrive
Extensible streaming ingestion pipeline on top of Apache Spark
Stars: ✭ 31 (-80.13%)
Mutual labels:  pipeline
cpm
Continuous Perfomance Monitor (CPM) for C++ code
Stars: ✭ 39 (-75%)
Mutual labels:  benchmark
SeqTools
A python library to manipulate and transform indexable data (lists, arrays, ...)
Stars: ✭ 42 (-73.08%)
Mutual labels:  pipeline
benchmarking-fft
choosing FFT library...
Stars: ✭ 74 (-52.56%)
Mutual labels:  benchmark
Face-Renovation
Official repository of the paper "HiFaceGAN: Face Renovation via Collaborative Suppression and Replenishment".
Stars: ✭ 245 (+57.05%)
Mutual labels:  benchmark
sets
Benchmarks for set data structures: hash sets, dawg's, bloom filters, etc.
Stars: ✭ 20 (-87.18%)
Mutual labels:  benchmark
bitbucket-push-and-pull-request-plugin
Plugin for Jenkins v2.138.2 or later, that triggers job builds on Bitbucket's push and pull request events.
Stars: ✭ 47 (-69.87%)
Mutual labels:  pipeline
rust-sthash
Very fast cryptographic hashing for large messages.
Stars: ✭ 61 (-60.9%)
Mutual labels:  fast
revl
Helps to benchmark code for Autodesk Maya.
Stars: ✭ 14 (-91.03%)
Mutual labels:  benchmark
typescript-orm-benchmark
⚖️ ORM benchmarking for Node.js applications written in TypeScript
Stars: ✭ 106 (-32.05%)
Mutual labels:  benchmark
node-vs-ruby-io
Node vs Ruby I/O benchmarks when resizing images with libvips.
Stars: ✭ 11 (-92.95%)
Mutual labels:  benchmark

gonetx/httpit

httpit is a rapid http(s) benchmark tool which on top of fasthttp. Also thanks to cobra and bubbletea.

Installation

Get binaries from releases or via

// go1.16+
go install github.com/gonetx/httpit@latest
// before go1.16
go get -u github.com/gonetx/httpit

Usage

Usage:
  httpit [url|:port|/path] [k:v|k:=v ...] [flags]

Examples:
        httpit https://www.google.com -c1 -n5   =>   httpit -X GET https://www.google.com -c1 -n5
        httpit :3000 -c1 -n5                    =>   httpit -X GET http://localhost:3000 -c1 -n5
        httpit /foo -c1 -n5                     =>   httpit -X GET http://localhost/foo -c1 -n5
        httpit :3000 -c1 -n5 foo:=bar           =>   httpit -X GET http://localhost:3000 -c1 -n5 -H "Content-Type: application/json" -b='{"foo":"bar"}'
        httpit :3000 -c1 -n5 foo=bar            =>   httpit -X POST http://localhost:3000 -c1 -n5 -H "Content-Type: application/x-www-form-urlencoded" -b="foo=bar"

Flags:
  -c, --connections int     Maximum number of concurrent connections (default 128)
  -n, --requests int        Number of requests(if specified, then ignore the --duration)
      --qps int             Highest qps value for a fixed benchmark (if specified, then ignore the -n|--requests)
  -d, --duration duration   Duration of test (default 10s)
  -t, --timeout duration    Socket/request timeout (default 3s)
  -X, --method string       Http request method (default "GET")
  -H, --header strings      HTTP request header with format "K: V", can be repeated
                            Examples:
                                -H "k1: v1" -H k2:v2
                                -H "k3: v3, k4: v4"
      --host string         Override request host
  -a, --disableKeepAlives   Disable HTTP keep-alive, if true, will set header Connection: close
  -b, --body string         Http request body string
  -f, --file string         Read http request body from file path
  -s, --stream              Use stream body to reduce memory usage
  -J, --json                Send json request by setting the Content-Type header to application/json
  -F, --form                Send form request by setting the Content-Type header to application/x-www-form-urlencoded
  -k, --insecure            Controls whether a client verifies the server's certificate chain and host name
      --cert string         Path to the client's TLS Certificate
      --key string          Path to the client's TLS Certificate Private Key
      --httpProxy string    Http proxy address
      --socksProxy string   Socks proxy address
  -p, --pipeline            Use fasthttp pipeline client
      --follow              Follow 30x Location redirects for debug mode
      --maxRedirects int    Max redirect count of following 30x, default is 30 (work with --follow)
  -D, --debug               Send request once and show request and response detail
  -h, --help                help for httpit
  -v, --version             version for httpit

Override host

Use --host to override Host header for the use case like curl "http://127.0.0.1" -H "Host: www.example.com" to bypass DNS resolving.

Proxy

Use --httpProxy and --socksProxy to specific proxies for some rare cases.

Pipeline

Use -p|--pipeline to specific fasthttp pipeline client.

Debug

Use -D|--debug to send a request once and view the whole info.

httpit "http://httpbin.org/get" -JD  
Connected to httpbin.org(54.91.118.50:80)

GET /get HTTP/1.1
User-Agent: fasthttp
Host: httpbin.org
Content-Type: application/json



HTTP/1.1 200 OK
Server: gunicorn/19.9.0
Date: Wed, 17 Mar 2021 04:33:00 GMT
Content-Type: application/json
Content-Length: 269
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

{
  "args": {}, 
  "headers": {
    "Content-Type": "application/json", 
    "Host": "httpbin.org", 
    "User-Agent": "fasthttp", 
    "X-Amzn-Trace-Id": "Root=1-6051867c-7effb4170f5e3057666ecb86"
  }, 
  "origin": "54.91.118.50", 
  "url": "http://httpbin.org/get"
}

Examples

Use duration

httpit -X GET "http://httpbin.org/get" -H "accept: application/json" -c2 -d3s

duration

Use count

httpit -X GET "http://httpbin.org/get" -H "accept: application/json" -c2 -n15

count

Donate

If you use and love httpit, please consider sending some Satoshi to 3AJ3wgRP1mCxiFD8mqKkDZaCahwgDj3gSh.

In case you want to be mentioned as a sponsor, please let me know!

Donate Bitcoin

Support

Jet Brains

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].