8 unstable releases (3 breaking)
0.6.2 | May 20, 2023 |
---|---|
0.6.1 | Mar 1, 2023 |
0.4.1 | Dec 23, 2022 |
0.3.0 | Sep 24, 2022 |
0.1.2 | Mar 20, 2022 |
#310 in HTTP client
27 downloads per month
18KB
276 lines
req
- HTTP Client
req
is a command line HTTP client, like curl
, httpie
and many others. Why another one? This is probably the
most succinct, while still intuitive, client you'll find. Let's see if you agree:
Examples
# Get `localhost:5000/`. We assume localhost if the hostname is a bare port.
req :5000
Let's send some JSON.
req :5000/auth/login --json email=test@example.com password=123
# --json sets `content-type`, sets `accept`, sets method to POST, and interprets the rest of the arguments
# as key-value pairs in JSON. And it pretty-prints and colorizes the JSON response.
# All of that behavior is defaulted, but can be overridden.
You can also use --form
which behaves similarly.
Here's a GET request:
# Because its a GET request, we know additional arguments are query params. These arguments get URL encoded.
req :5000/search q='this is a multi-word query string'
Need authentication headers? These all work:
req --bearer <token>
req -u <user>:<pass> # --user also works
req --token <token>
We keep the -O
flag from curl
for saving files.
Installation
cargo install --git https://github.com/kurtbuilds/req
Contributions
Need a feature or have a bug report? Open an issue or a PR.
Roadmap
- Flag to upload a file
Dependencies
~13–27MB
~458K SLoC