# h3o
[](https://crates.io/crates/h3o)
[](https://docs.rs/h3o)
[](https://github.com/HydroniumLabs/h3o/actions)
[](https://app.codecov.io/gh/HydroniumLabs/h3o)
[](https://opensource.org/licenses/BSD-3-Clause)
[Rust](https://rustlang.org) implementation of the [H3](https://h3geo.org)
geospatial indexing system.
## Design
This is not a binding of the reference implementation, but a reimplementation
from scratch.
The goals are:
- To be safer/harder to misuse by leveraging the strong typing of Rust.
- To be 100% Rust (no C deps): painless compilation to WASM, easier LTO, …
- To be as fast (or even faster when possible) than the reference library.
## Installation
### Cargo
* Install the rust toolchain in order to have cargo installed by following
[this](https://www.rust-lang.org/tools/install) guide.
* run `cargo install h3o`
## Usage
```rust
use h3o::{LatLng, Resolution};
let coord = LatLng::new(37.769377, -122.388903).expect("valid coord");
let cell = coord.to_cell(Resolution::Nine);
```
## Why this name?
Rust is an iron oxide.
A Rust version of H3 is an H3 oxide, in other word $H_3O$ (a.k.a hydronium).
Chemically speaking this is wrong ( $H_3O$ is produced by protonation of
$H_2O$, not oxidation of $H_3$), but ¯\\_(ツ)_/¯
## License
[BSD 3-Clause](./LICENSE)