Skip to content

rene-d/advent-of-rust

Repository files navigation

Advent of Code in Rust 🦀

Stars: 500 Rust: 250 Python: 123

Christmas Ferris

Complete solutions of Advent of Code in Rust, and sometimes in Python and other languages 🎄✨.

Made for fun 😎 and to practice Rust. Many thanks to Eric Wastl.

2024 (current event) (Calendar) (Solutions) : 50⭐

Puzzle Stars Languages
Day 1: Historian Hysteria ⭐⭐ Rust Python C C++ Go Ruby Perl Lua JS Bash Swift Java C# SQLite
Day 2: Red-Nosed Reports ⭐⭐ Rust Python Go
Day 3: Mull It Over ⭐⭐ Rust Python Go Perl
Day 4: Ceres Search ⭐⭐ Rust Python
Day 5: Print Queue ⭐⭐ Rust
Day 6: Guard Gallivant ⭐⭐ Rust
Day 7: Bridge Repair ⭐⭐ Rust Python Go
Day 8: Resonant Collinearity ⭐⭐ Rust Python
Day 9: Disk Fragmenter ⭐⭐ Rust
Day 10: Hoof It ⭐⭐ Rust
Day 11: Plutonian Pebbles ⭐⭐ Rust Go
Day 12: Garden Groups ⭐⭐ Rust
Day 13: Claw Contraption ⭐⭐ Rust Rust Python
Day 14: Restroom Redoubt ⭐⭐ Rust Python 🎁
Day 15: Warehouse Woes ⭐⭐ Rust 🎁
Day 16: Reindeer Maze ⭐⭐ Rust 🎁
Day 17: Chronospatial Computer ⭐⭐ Rust
Day 18: RAM Run ⭐⭐ Rust C++ Go
Day 19: Linen Layout ⭐⭐ Rust
Day 20: Race Condition ⭐⭐ Rust
Day 21: Keypad Conundrum ⭐⭐ Rust
Day 22: Monkey Market ⭐⭐ Rust
Day 23: LAN Party ⭐⭐ Rust Python
Day 24: Crossed Wires ⭐⭐ Rust
Day 25: Code Chronicle ⭐⭐ Rust Python Go

All years

Calendar Solutions Stars Rust Python 🎁
Advent of Code 2024 Solutions 50⭐ 25 10 3
Advent of Code 2023 Solutions 50⭐ 25 11 1
Advent of Code 2022 Solutions 50⭐ 25 18 1
Advent of Code 2021 Solutions 50⭐ 25 12
Advent of Code 2020 Solutions 50⭐ 25 23
Advent of Code 2019 Solutions 50⭐ 25 23 2
Advent of Code 2018 Solutions 50⭐ 25 4 1
Advent of Code 2017 Solutions 50⭐ 25 17
Advent of Code 2016 Solutions 50⭐ 25 0
Advent of Code 2015 Solutions 50⭐ 25 5 1

Bonus 🎁

Year Count Days
2024 3 14 15 16
2023 1 10
2022 1 17
2019 2 13 15
2018 1 18
2015 1 18

Under the hood 🎄

All solutions are tested and verified with a lot of puzzle inputs and answers (personal accounts, family accounts, friends' accounts and those found on GitHub). Thus, they can be considered totally generic.

By choice, I use the most recent versions of the languages, and therefore sometimes new paradigms and functionalities, since AoC is an excellent way to practice, explore and learn (while having fun!).

Rust solutions respect cargo clippy -- -D clippy::all -F clippy::pedantic -F clippy::nursery, which is a pretty strong hardening (except one clippy::too_many_lines).

They also include, for the most part, unit tests taken from the examples of puzzle statements.

On average, with all the inputs I have, 80% of them run in less than 100ms on my Apple Silicon M1, and 95% in less than half a second.