██╗██████╗ ██████╗ ███╗ ██╗ ██████╗██╗ ██╗██████╗ ██╗
██║██╔══██╗██╔═══██╗████╗ ██║ ██╔════╝██║ ██║██╔══██╗██║
██║██████╔╝██║ ██║██╔██╗ ██║ ██║ ██║ ██║██████╔╝██║
██║██╔══██╗██║ ██║██║╚██╗██║ ██║ ██║ ██║██╔══██╗██║
██║██║ ██║╚██████╔╝██║ ╚████║ ╚██████╗╚██████╔╝██║ ██║███████╗
╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
iron_curl is an asynchronous Rust cli tool designed to simplify HTTP request handling by providing a versatile interface for making requests, processing responses, and handling HTTP methods.
- Support for multiple HTTP methods, including GET, POST, PATCH, PUT, and DELETE.
- Customizable request headers and body content.
- Asynchronous execution for improved performance with
tokio. - User-friendly command-line interface leveraging
clap.
You should have the Rust toolchain installed, including cargo, Rust's package manager and build tool. This project requires Rust 2018 edition or newer.
To use iron_curl, clone the repository and build the project:
git clone https://github.com/renatodinizc/iron_curl.git
cd iron_curl
cargo build --releaseThe executable will be located in ./target/release/.
iron_curl replicates GNU curl's functionality in a Rust environment. Use it from the command line to make HTTP requests:
./target/release/iron_curl https://example.comSupports various command-line options to customize your requests:
--requestor-X: Specifies the HTTP method to use.--headeror-H: Adds a header to the request.--dataor-d: Sends data in a POST request.
For a full list of options, run:
./target/release/iron_curl --helpPerform a GET request:
./target/release/iron_curl https://httpbin.org/getSend a POST request with headers and body data:
./target/release/iron_curl -X POST https://httpbin.org/post -H "Content-Type: application/json" -d '{"key":"value"}'We welcome contributions! If you've found a bug or have a feature request, please open an issue. If you're ready to contribute code, please submit a pull request with your changes.
This project is licensed under the MIT License - see the LICENSE file for details.