20 stable releases (4 major)
Uses new Rust 2024
new 4.2.0 | Mar 27, 2025 |
---|---|
4.0.0 | Dec 11, 2024 |
3.5.0 | Aug 27, 2024 |
3.4.1 | Apr 30, 2024 |
0.1.1 | Nov 29, 2021 |
#35 in Caching
185 downloads per month
140KB
2K
SLoC
Rustemon 
This library is a wrapper for the awesome PokeApi, which provides all the informations you need about Pokémons !
Fully written in Rust, this library covers the whole PokeApi
REST api v2.
How to import it ?
Adds the following in the dependencies of your Cargo.toml :
rustemon = "4.2.0"
How to use it ?
As you noticed in the documentation of PokeApi, every endpoints and models are declared in groups.
The library kept this group oriented architecture !
Features
To support easier export to other tooling and libraries, the serialize
feature enables PokeApi
structs to be compiled with serde::Serialize
.
This feature is disabled by default.
[dependencies]
rustemon = { version = "*", features = ["serialize"] }
Models
All the models are located into the following module :
rustemon::model
For example, if you want the type Pokemon
located in the group pokemon
, it is located here :
rustemon::model::pokemon::Pokemon
Endpoints
The endpoints follow the same naming rule, for example, if you want to call the evolution chain endpoint from the evolution group :
rustemon::evolution::evolution_chain
For each endpoints, 4 functions are defined :
get_page
: without parameters, calls the endpoint without any informations to retrieve the first page of the paginated response for the endpoint, as defined here,get_page_with_param
: allows you to modify the parameters for the paginated query,get_by_id
: calls the endpoint using the id of the targeted resource,get_by_name
: calls the endpoint using the name of the targeted resource.
The endpoints are all async ! Which means you NEED to add a async runtime (such as tokio for example), in order for the library to work.
Caching
All calls to the API are cached by a middleware attached to the RustemonClient
you need to instanciate in order
to make calls to the PokeAPI
.
Examples
Examples and use cases are available in the examples
folder. For instance, you can run the async_follow
example using
cargo run --example async_follow
License
The license of the library can be found here.
Contribution
If you find any bug or improvement that you find valuable, please fill an issue right there -> project issues
Dependencies
~9–38MB
~579K SLoC