Rust client library for Path of Exile API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
data
examples
src
testdata
.gitignore
.travis.yml
Cargo.toml
LICENSE
README.md
justfile

README.md

ezomyte

crates.io Build Status License

Client library for Path of Exile API

Documentation

Warning: The crate is in early stages and the interface (esp. the data model for items) is likely to evolve over time.


Installation

Add ezomyte to your project's [dependencies] in Cargo.toml:

[dependencies]
ezomyte = "0.0.2"

Usage

ezomyte::Client provides access to various part of Path of Exile API: public stashes (Client::stashes), current & past leagues (Client::leagues), and so on.

All endpoints return asynchronous Streams of structures that has been deserialized from PoE API. Here's a simple example of accessing public stash tabs and looking for items with the unique rarity:

extern crate ezomyte;
extern crate futures;
extern crate tokio_core;

use ezomyte::Rarity;
use futures::Stream;
use tokio_core::reactor::Core;

fn main() {
    let mut core = Core::new().unwrap();
    let client = ezomyte::Client::new("ezomyte example", &core.handle());
    core.run(
        client.stashes().all().for_each(|stash| {
            let uniques = stash.items.iter().filter(|i| i.rarity == Rarity::Unique);
            for item in uniques {
                // Prints something like "Belly of the Beast -- Full Wyrmscale".
                println!("{} -- {}",
                    item.name.as_ref().map(|n| n.as_str()).unwrap_or("<unnamed>"),
                    item.base);
            }
            Ok(())
        })
    ).unwrap();
}

See the examples directory for more examples.


Development

Besides the current version of Rust compiler and Cargo, you would want:

  • the just task runner (cargo install just)
  • jq, the command line JSON manipulator (apt-get install jq or similar)

Running just will execute all the tests and compile examples.