# wmata wmata is a high level async Rust interface to the [Washington Metropolitan Area Transit Authority API](https://developer.wmata.com). ## Contents - [Requirements](#requirements) - [Installation](#installation) - [Usage](#usage) - [Getting Started](#getting-started) - [Design](#design) - [Using `MetroRail`](#using-MetroRail) - [Using `MetroBus`](#using-MetroBus) - [Testing](#testing) - [Dependencies](#dependencies) - [Contact](#contact) - [License](#license) ## Requirements - Rust 1.39 ## Installation ### Cargo ```toml wmata = "7.1.0" ``` ## Usage ### Getting Started ```rust use wmata::{MetroRail, Station}; let client = MetroRail::new(api_key); let trains = client.next_trains(Station::A01).await?; ``` ### Design wmata breaks the WMATA API into two components: `MetroRail` and `MetroBus`. #### `MetroRail` Provides access to all MetroRail related endpoints. ##### Using `MetroRail` ```rust use wmata::{MetroRail, Station}; let client = MetroRail::new(api_key); let trains = client.next_trains(Station::A01).await?; ``` #### `MetroBus` Provides access to all MetroBus related endpoints. ##### Using `MetroBus` ```rust use wmata::MetroBus; let client = MetroBus::new(api_key); let routes = client.routes().await?; ``` ## Testing Note that tests must currently be run with `--test-threads 1` in order to pass, due to using live data. ## Dependencies - serde - serde_json - reqwest - chrono - await_trait - tokio_test ## Contact Feel free to email questions and comments to [emma@emma.sh](mailto:emma@emma.sh) ## License wmata is released under the MIT license. [See LICENSE](https://github.com/emma-k-alexandra/wmata/blob/master/LICENSE) for details.