# ip-api4rs [![Build Status]][actions] [![Latest Version]][crates.io] [![Docs]][docs.rs]
[Build Status]: https://img.shields.io/github/actions/workflow/status/DenuxPlays/ip-api4rs/rust.yml?branch=main&style=flat-square
[actions]: https://github.com/DenuxPlays/ip-api4rs/actions?query=branch%3Amain
[Latest Version]: https://img.shields.io/crates/v/ip-api4rs.svg?style=flat-square
[crates.io]: https://crates.io/crates/ip-api4rs
[docs.rs]: https://docs.rs/ip-api4rs
[Docs]: https://img.shields.io/badge/docs.rs-ip--api4rs-66c2a5?style=flat-square&color=blue
A simple but powerful wrapper for the [ip-api](https://ip-api.com/) API.
## Usage
In the example below we use tokio to convert our async main function into a sync one.
Tokio itself is not needed when using this crate.
```rust
use ip_api4rs::IpApiClient;
#[tokio::main]
async fn main() {
let client = IpApiClient::new();
let response = client.query_api_default("8.8.8.8").await.unwrap();
println!("{:#?}", response);
}
```
## Features
- fully async api (or blocking with the `blocking` feature)
- simple to use
- supply custom structs to only get want you want
- Api-Token support
- SSL support
## Features that won't be added
**This doesn't mean that we would not implement features listed here.**
We just won't implement them ourselves.
Feel free to open a pull request if you want to add more features.
- Batch requests
- non Json responses
- DNS Api support