| Crates.io | eve_esi |
| lib.rs | eve_esi |
| version | 0.4.5 |
| created_at | 2024-04-01 04:44:52.180359+00 |
| updated_at | 2025-09-23 03:17:40.917952+00 |
| description | Thread-safe, asynchronous client for EVE Online's ESI & OAuth2 |
| homepage | |
| repository | https://github.com/hyziri/eve_esi |
| max_upload_size | |
| id | 1192145 |
| size | 674,310 |
[!WARNING]
This crate is still under development, APIs may change between versions
Currently the crate features OAuth2 login with EVE Online and we're now currently working on implementing all ESI endpoints. The goal is to implement an average of around 10 endpoints per day, it takes about 15 minutes to implement each endpoint due to writing related structs, enums, documentation & integration tests. All endpoints are expected to be added around early October at this rate.
Documentation for this crate is still work-in-progress, if you see any issues or areas for improvement in documentation contributions are always welcome to help make this crate more accessible to other developers.
A thread-safe, asynchronous client which provides methods & types for interaction with EVE Online's ESI & EVE Online's single sign-on (SSO).
Documentation: https://docs.rs/eve_esi/latest/eve_esi/
Contributing: https://github.com/hyziri/eve_esi/blob/main/CONTRIBUTING.md
For usage examples, ESI client configuration, and logging configuration, please see the documentation
Have questions about this crate or EVE Online's ESI in general? Ask us in Discord!
NotificationType enum have documentation.Create a new ESI Client instance and request public information about a corporation from ESI.
// esi_client is asynchronous, #[tokio::main] allows for making the main function async
#[tokio::main]
async fn main() {
// Set a user_agent to identify your application when making requests
let user_agent = "MyApp/1.0 (contact@example.com; +https://github.com/your/repository)";
// Create a basic ESI client with user_agent
let esi_client = eve_esi::Client::new(user_agent).expect("Failed to build ESI Client");
// Get information about the corporation The Order of Autumn (id: 98785281)
let corporation = esi_client.corporation().get_corporation_information(98785281).await.unwrap();
println!("Corporation name: {}", corporation.name);
}
For more usage examples, ESI client configuration, and logging configuration, please see the documentation
The following categories from the ESI API Explorer have been implemented:
| Category | Implemented |
|---|---|
| Alliance | 4/4 |
| Character | 11/11 |
| Corporation | 22/22 |
| Market | 11/11 |
New endpoints are being implemented at a goal pace of 10/day with a new version release every 2-3 days featuring a new endpoint category
If you wish to see logs for the steps of how the crate works in the examples, prefix the cargo run --example sso command like so RUST_LOG=eve_esi=debug cargo run --example sso.
A basic example demonstrating how to use the eve_esi crate with the axum web framework to create an API that serves ESI data.
cargo run --example axumAn example demonstrating how to use the eve_esi crate with the axum web framework to utilize EVE SSO authentication to login with EVE Online. This is a prerequisite for accessing private ESI routes.
http://localhost:8080/callbackcargo run --example ssohttp://localhost:8080/login in your browserhttp://localhost:8080/callback