#api-token #rest #rest-http #exercism

mini_exercism

Minimalistic Rust library to interact with the Exercism.org APIs

14 stable releases (6 major)

Uses new Rust 2024

7.1.0 Nov 6, 2025
6.0.0 Oct 2, 2025
5.0.0 Apr 7, 2025
4.2.0 Oct 6, 2024
1.2.0 Nov 13, 2023

#423 in Asynchronous

22 downloads per month
Used in auxiliaire

MIT license

160KB
2.5K SLoC

mini_exercism

CI codecov Security audit crates.io downloads docs.rs Contributor Covenant

Minimalistic Rust library to interact with the Exercism.org APIs.

Exerci-what?

Exercism is a free, not-for-profit platform to learn new programming languages. It supports a web editor for solving exercises, mentoring with real humans and a lot more. For more information, see its about page.

Installing

Add mini_exercism to your dependencies:

[dependencies]
mini_exercism = "7.1.0"

or by running:

cargo add mini_exercism

Example

use mini_exercism::api;
use mini_exercism::api::v2::exercises::Filters;
use mini_exercism::core::Credentials;

async fn get_published_solution_uuids(
    api_token: &str,
    track: &str,
) -> anyhow::Result<Vec<String>> {
    let credentials = Credentials::from_api_token(api_token);
    let client = api::v2::Client::builder()
        .credentials(credentials)
        .build()?;

    let filters = Filters::builder().include_solutions(true).build();
    let solutions = client.get_exercises(track, Some(filters)).await?.solutions;

    Ok(solutions
        .into_iter()
        .filter(|solution| solution.published_at.is_some())
        .map(|solution| solution.uuid)
        .collect())
}

For more information, see the docs.

Minimum Rust version

mini_exercism currently builds on Rust 1.85 or newer.

Dependencies

~13–31MB
~322K SLoC