497 stable releases
new 2024.10.0 | Dec 10, 2024 |
---|---|
2022.0.71 | Nov 28, 2024 |
2022.0.66 | Feb 25, 2024 |
2022.0.63 | Dec 9, 2023 |
2019.12.168 | Nov 30, 2020 |
#140 in Rust patterns
1,804 downloads per month
1.5MB
30K
SLoC
Advent of Code solutions
Solutions to Advent of Code problems in Rust.
Running locally
The command line tool takes <year> <day> <part>
as arguments and reads the problem input from stdin:
$ echo 14 | cargo run -q 2019 1 1
2
Installing from homebrew
The command-line tool can be installed as a brew tap:
$ brew install fornwall/tap/advent-of-code
$ echo 14 | advent-of-code 2019 1 1
Published crate
This crate is published to crates.io/crates/advent-of-code.
As a library it exposes a solve(year, day, part, input)
function as documented on docs.rs/advent-of-code:
// Using the dependency added: advent-of-code = "*":
use advent_of_code::solve;
fn main() {
assert_eq!(solve(2019, 1, 1, "14"), Ok("2".to_string()));
}
It also contains the command line program to run the solution:
$ cargo install advent-of-code
$ echo 14 | advent-of-code 2019 1 1
2
Docker image on Docker Hub
The command line interface is published to a fredrikfornwall/advent-of-code Docker image:
$ docker pull fredrikfornwall/advent-of-code:latest
$ echo 14 | docker run -i fredrikfornwall/advent-of-code:latest 2019 1 1
2
Generating flamegraphs on macOS
Install flamegraph with cargo install flamegraph
and build a benchmark binary with:
RUSTFLAGS='-g' cargo build --release --bench benchmark
This will create a benchmark binary under something like ls ../../target/release/deps/benchmark-31ba773f80f7f5d8
. Then profile and generate a flamegraph.svg
by running
sudo flamegraph ../../target/release/deps/benchmark-31ba773f80f7f5d8 --bench 2020_07_1
Dependencies
~0–30MB
~458K SLoC