An open API service indexing awesome lists of open source software.

https://github.com/guibranco/viacep-sdk-rs

🇧🇷 📍 ViaCEP client wrapper for Rust projects
https://github.com/guibranco/viacep-sdk-rs

address api cep code correios fazenda gia hacktoberfest ibge mf postal postalcode viacep webservice ws zip zipcode

Last synced: 3 months ago
JSON representation

🇧🇷 📍 ViaCEP client wrapper for Rust projects

Awesome Lists containing this project

README

          

# ViaCEP Rust client

🇧🇷📍 [ViaCEP](https://viacep.com.br) client wrapper for Rust projects.

![GitHub last commit (branch)](https://img.shields.io/github/last-commit/guibranco/viacep-rs/main)
![Crates.io](https://img.shields.io/crates/d/viacep-rs)
[![wakatime](https://wakatime.com/badge/github/guibranco/viacep-rs.svg)](https://wakatime.com/badge/github/guibranco/viacep-rs)

| Service | Status |
| ------- | :----: |
| AppVeyor CI | [![Build status](https://ci.appveyor.com/api/projects/status/w1di231c9hr2tyhy/branch/main?svg=true)](https://ci.appveyor.com/project/guibranco/viacep-rs/branch/main) |
| crates.io | [![crates.io](https://img.shields.io/crates/v/viacep-rs.svg)](https://crates.io/crates/viacep-rs) |

Pure Rust bindings to the [ViaCEP API](https://viacep.com.br).

## Dependencies and support

`viacep-rs` is intended to work on all tier 1 supported Rust systems:

- macOS
- Linux
- Windows

## Minimum Compiler Version

`viacep-rs` requires `rustc` version **1.56 or higher** (Rust 2021 edition).

## Getting Started

Add the following to your `Cargo.toml`:

```toml
[dependencies]
viacep_rs = "0.2.0"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
```

Then in your `lib.rs` or `main.rs` file:

```rust
use viacep_rs::ViaCepClient;

let client = ViaCepClient::new();

// Single Zip Code lookup
match client.get_zipcode("03177010") {
Err(e) => eprintln!("{:?}", e),
Ok(data) => {
let cep = data.unwrap();
println!(
"IBGE: {} | Address: {} | Neighborhood: {} | City: {} | UF: {}",
cep.ibge, cep.address, cep.neighborhood, cep.city, cep.state_initials
);
}
}

// Search by address
match client.search("SP", "São Paulo", "Paulista") {
Err(e) => eprintln!("{:?}", e),
Ok(data) => {
let addresses = data.unwrap();
for address in addresses {
println!(
"IBGE: {} | Address: {} | City: {} | Zip: {}",
address.ibge, address.address, address.city, address.zip
);
}
}
}
```

## License

Licensed under the MIT license ([LICENSE](https://github.com/guibranco/viacep-rs/blob/main/LICENSE) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)).