crul
Crul 
Crul is a curl replacement, that is, it's a command line HTTP client. It has less features and options, but it aims to be more user friendly. It's heavily inspired by httpie.
It's written in the Crystal language. It's in an early stage but it allows already basic usage.
Features
- Fast
- No dependencies, easy to install
- Basic HTTP features (method, request body, headers)
- Syntax highlighting of the output (JSON and XML)
- Basic authentication
Planned features
- User friendly headers and request body generation (similar to httpie's)
- Digest authentication
- More fancy stuff
Installation
Download the latest release and unzip it somewhere in your $PATH
, like this wget https://github.com/porras/crul/releases/download/v0.1.0/darwin-amd64-crul.zip && unzip darwin-amd64-crul.zip && mv ./crul ~/bin/ && rm darwin-amd64-crul.zip
Currently, this release is only for Mac, if you want a Linux or Windows one, you can build from sources, see Development.
Usage
Usage: crul [method] URL [options]
get, GET Use GET (default)
post, POST Use POST
put, PUT Use PUT
delete, DELETE Use DELETE
-d DATA, --data DATA Request body
-H HEADER, --header HEADER Set header
-j, --json Format response as JSON
-x, --xml Format response as XML
-p, --plain Format response as plain text
-a USER:PASS, --auth USER:PASS Basic auth
-h, --help Show this help
Examples
GET request
$ crul http://httpbin.org/get?a=b
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 11 Mar 2015 07:57:33 GMT
Content-type: application/json
Content-length: 179
Connection: keep-alive
Access-control-allow-origin: *
Access-control-allow-credentials: true
{
"args": {
"a": "b"
},
"headers": {
"Content-Length": "0",
"Host": "httpbin.org"
},
"origin": "188.103.25.204",
"url": "http://httpbin.org/get?a=b"
}
PUT request
$ crul put http://httpbin.org/put -d '{"a":"b"}' -H Content-Type:application/json
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 11 Mar 2015 07:58:54 GMT
Content-type: application/json
Content-length: 290
Connection: keep-alive
Access-control-allow-origin: *
Access-control-allow-credentials: true
{
"args": {},
"data": "{\"a\":\"b\"}",
"files": {},
"form": {},
"headers": {
"Content-Length": "9",
"Content-Type": "application/json",
"Host": "httpbin.org"
},
"json": {
"a": "b"
},
"origin": "188.103.25.204",
"url": "http://httpbin.org/put"
}
Development
After checking out the repo, run make
to run the tests and compile the source.
Contributing
- Fork it ( https://github.com/porras/crul/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
You can also contribute by trying it and reporting any issue you find.
Copyright
Copyright (c) 2015 Sergio Gil. See LICENSE for details.