8 stable releases

3.0.1 Aug 19, 2025
3.0.0 Jul 30, 2025
2.1.0 Jul 30, 2025
1.1.0 Jul 31, 2024

#472 in Web programming

GPL-3.0 license

31KB
425 lines

Version Downloads

a simple Advent of Code API written in Rust - also checkout the C# version

Documentation



Add Crate

cargo add aoc_api
use aoc_api::Session;

Static functions

All of the blow mentioned functions are also available as static functions, not bound to the Session struct. These can be used for easier access (not having to initialize a Session struct) in your application. The Session struct just acts as a wrapper around the static functions, which do not differ in any way to the Session struct functions.


Session initialization

let client = Session::new("session cookie": String, year: u16, day: u8); // Initializes a new Session instance
let client = Session::new("session cookie": String, input: String, pattern: Regex); // Initializes a new Session instance
Info
The Regex overload needs to have a regex group named "year" and a group named "day".
How to name Regex groups
How to obtain session cookie

Features

Get input

let input_text: Result<String, Box<dyn Error>> = client.get_input_text().await; // Retrieves the input text of the AoC puzzle
let input_lines: Result<Vec<String>, Box<dyn Error>> = client.get_input_lines().await; // Retrieves the input lines of the AoC puzzle

Get sample input

let sample_input_text: Result<String, Box<dyn Error>> = client.get_sample_input_text(nth: u8).await; // Retrieves the nth sample input text of the AoC puzzle
let sample_input_lines: Result<Vec<String>, Box<dyn Error>> = client.get_sample_input_lines(nth: u8).await; // Retrieves the nth sample input lines of the AoC puzzle

Get achieved stars

let achieved_stars: Result<HashMap<u16, u8>, Box<dyn Error>> = client.get_all_stars().await; // Retrieves each year's number of stars earned (key: year, value: stars)

Submit answer

let response: Result<bool, SubmitAnswerError> = client.submit_answer_explicit_error(part: u8, answer: &str).await; // Submits an answer to part 1 or 2 of the AoC puzzle. Returns a boolean whether the answer is correct



credits to:

Max - markdown info icons
> Monday Morning Haskell - documentation on how to obtaining session cookie
> Developer.Mozilla - documentation on how to name Regex groups

Dependencies

~8–23MB
~281K SLoC