Awesome Advent of Code
This is a collection of awesome resources related to the yearly Advent of Code challenge.
Sponsors
Project Templates
Templates, cookiecutters and skeletons for quickly setting up
projects in your favourite language.
- Browser extension for private leaderboard visualization
- Browser extension which enhances your personal stats page with a
time from Part 1 to Part 2 column (it also tracks when you’ve first
opened a puzzle and offsets the completion times accordingly)
- Browser extension (open
source) enhancing private leaderboards with a “medals/podium” chart
per day, Part 1 to Part 2 overview, and several other charts for your
leaderboard
- Globals
medals overview – Alternative global leaderboard showing first,
second and third places as gold, silver and bronze medals.
- Scatterplot of
first 100 – Scatterplot of the time taken to solve the parts of each
puzzle by the first 100 people that solved it.
- Private Leaderboard
Visualiser – Given a JSON of your private leaderboard data this
website will show you graphs of how long each member took to solve parts
1 and 2 of each day.
- advent-of-code –
Command-line interface to download challenge descriptions and inputs,
manage, test and automatically submit solutions. (Python)
- aocdl
– Command-line utility that automatically downloads your personal input
file while you read the puzzle description (Go).
- aocinput
– CLI for getting inputs. Clipboard support. Polite to AoC. Nice help
and options. (Go)
- aoc_rb – A Ruby gem
that generates an empty AoC project, and provides command-line tools for
fetching input and submitting solutions (Ruby)
- aoc-cli –
Command-line utility that helps solve problems in ruby: it downloads
your personal input file, creates the sample source files and benchmarks
your solutions (Ruby).
- AocKt
– A testing library for creating unit tests for AoC solutions with
minimal boilerplate. (Kotlin)
- AoCHelper –
NuGet library that simplifies puzzle solving and provides benchmarking
(.NET).
- AdventOfCode.Runner
– NuGet package that automatically provides your puzzles solvers with
the input from the AOC site and verifies calculated answers (.NET /
C#).
- aocleaderboard
– get over the 200-member limit for private leaderboards and combine
multiple leaderboards in a single page with recalculated scores.
- advent-of-code-api
– Haskell library for querying AOC prompts, inputs, and leaderboards
(Haskell)
- advent-of-code-ocr
– Command line utility and Haskell library for parsing AoC ascii art
words (Haskell)
- advent-of-code-ocr
– Python module for parsing AoC ascii art words (Python)
- aoc-agent – C#
source generator that generates: a) tests for your solution logic, b)
complete runner that handles input fetching and answer submitting
(.NET)
- aoc-ranking –
Show all non-zero score AoC participants in one, global scoreboard.
(Python)
- aoc-cli – Read
puzzle descriptions, download input, and submit answers from the comfort
of your terminal. (Rust)
- adventofcode-badge
– An interface over Shields.io to facilitate the creation of badges from
Advent of Code.
- @aocjs/cli – Package for executing
solutions with hot reload and data fetching (JavaScript,
TypeScript)
- eggnog – CLI
for getting input, directions (with nice colors!), and submitting
answers. Caches absolutely everything. (C)
- aoc-badges-action
– A GitHub action for updating various aoc-related badges in your README
(GitHub Action, Python)
- advent-readme-stars
– A GitHub action that adds and maintains a table of your AoC progress
to your README (GitHub Action, Python)
- aoctimer – A
language-agnostic, multiplatform tool to measure your solution time in
relative units, so you can share and compare your results with
others.
- aocrunner – A
fast solutions runner and template generator, with simple CLI,
customizable template, simple testing utility, live reload, and
adventofcode.com integration. (JavaScript, TypeScript)
- advent-of-code-client
– A Node.js package for fetching inputs, running puzzle challenges and
submitting answers to adventofcode.com directly from your JavaScript
code. Also includes some commonly used & customizable input
transformation functions. (JavaScript)
- advent-of-code-runner
– Node.JS CLI solution generator and runner. Downloads inputs, submits
answers, prevents duplicate submissions, measures performance, tracks
progress and outputs statistics. (JavaScript)
- AoC-execution-time-table-generator
– A C++20 tool to generate an execution time table for both parts of
each AoC day, based on input file with time details.
- aocf – A CLI tool (and
also, optionally, crate) written in Rust, with a CLI inspired by git.
Problem briefs may be displayed in a scrollable ANSI terminal (mostly)
faithful to the AoC website.
- AdventOfCodeAbstractions
– A NuGet package that contains extendable abstractions and generalized
helpers to simplify and streamline .NET AoC puzzle solving.
(C#)
- aocd – A template
generator and library for solving AoC with Deno that handles input
fetching and solution submitting. (TypeScript / Deno)
- advent_of_code_utils
– Input fetcher and boilerplate generator for those solving AoC in
Elixir. (Elixir)
- Advent
of Code Surveys (Results Dashboard) – Dashboard with charts and data
tables showing the results of the yearly Advent of Code Survey
- AdventOfCode-CLI
– A Commandline interface written in python to quickly generate
boilerplates in different languages and fetching your puzzle input. Also
includes customizable templates and measures solution times.
- aoc-cli – Command-line
utility that helps solve problems in python: it downloads your personal
input file, creates the sample source files and makes sure you don’t
submit answers twice (Python).
- Golfcoder – A code golf
community leaderboard for adventofcode.com, with a focus on code size.
Every name, including variables and functions, is considered as a single
token, irrespective of its length. (Python, Rust, Go, Kotlin,
JavaScript, C#, TypeScript, C++, Java, C, Swift, Scala)
- aoc-tiles – A
tool which automatically creates a fancy image with solve times for each
solved day in your readme as a 5x5 grid. Works as a pre-commit hook or
as a CLI (Python).
- wang-aoc-cli
– A CLI tool for automatically copying boilerplate code, downloading
problem statements and inputs, parsing example inputs and solutions from
problem statements, testing against example inputs, and submitting.
Expects programs to use stdin and stdout to read inputs and write
answers. (Python)
- esb –
esb
is a CLI tool to help us elves save Christmas for the yearly Advent of Code events. (Thank you,
Eric! 😉). This tool fetches
puzzle statements and puzzle data, creates language agnostic boilerplate
code, test run and submit solutions and builds dashboards. Check out an
example repo
created using esb! (Python, Rust, Elixir, Go)
- aoc_helper –
aoc_helper is a library and command line tool which can
generate templates, fetch puzzle inputs, submit solutions, and even
automatically detect the tests! It also comes with a huge library of
utility classes, such as fluent interfaces to iterators and lists, grids
which can automatically read text, and more. (Python)
- Star Track – Web-based
visualization tool that generates progress tracking charts and
comparisons from your private leaderboard JSON data.
- pysleigh –
pysleigh is a lightweight python runner , collector,
templater, submitter and benchmarker for the advent of code.
(Python)
- rusty-sleigh –
rusty-sleigh is a lightweight rust runner , collector ,
template, submitter and benchmarker for the advent of code. It is a rust
port for pysleigh (Rust)
Other Advent Calendars
24 days of cool stuff regarding
.
2024
WARNING: All of these likely contain spoilers.
Read CONTRIBUTING.md to learn
how to add your own repos.
Solutions
Ada
Solutions to AoC in Ada.
APL
Solutions to AoC in APL.
Arturo
Solutions to AoC in Arturo.
Assembly
Solutions to AoC in Assembly.
AWK
Solutions to AoC in AWK.
Bash
Solutions to AoC in Bash.
BQN
Solutions to AoC in BQN.
C
Solutions to AoC in C.
C
Solutions to AoC in C#.
C++
Solutions to AoC in C++.
C3
Solutions to AoC in C3.
Clojure
Solutions to AoC in Clojure.
Common Lisp
Solutions to AoC in Common Lisp.
Crystal
Solutions to AoC in Crystal.
D
Solutions to AoC in D.
Dart
Solutions to AoC in Dart.
Delphi
Solutions to AoC in Delphi.
Deno
Solutions to AoC in Deno.
Elixir
Solutions to AoC in Elixir.
Elm
Solutions to AoC in Elm and Literate Elm.
Emacs Lisp
Solutions to AoC in Emacs Lisp (elisp).
Erlang
Solutions to AoC in Erlang.
Excel
Solutions to AoC in Excel.
F
Solutions to AoC in F#.
Factor
Solutions to AoC in Factor.
Gleam
Solutions to AoC in Gleam.
Go
Solutions to AoC in Go.
Groovy
Solutions to AoC in Groovy.
Hamler
Solutions to AoC in Hamler.
Haskell
Solutions to AoC in Haskell.
Haxe
Solutions to AoC in Haxe.
HolyC
Solutions to AoC in HolyC (TempleOS).
Hoon
Solutions to AoC in Hoon (Urbit).
Idris
Solutions to AoC in Idris.
J
Solutions to AoC in J.
Java
Solutions to AoC in Java.
JavaScript
Solutions to AoC in JavaScript.
jq
Solutions to AoC in jq.
Julia
Solutions to AoC in Julia.
Kotlin
Solutions to AoC in Kotlin.
LDPL
Solutions to AoC in LDPL.
Lua
Solutions to AoC in Lua.
M4
Solutions to AoC in M4.
MATLAB
Solutions to AoC in MATLAB (Octave).
Nim
Solutions to AoC in Nim.
Nushell
Solutions to AoC in Nushell.
Objective-C
Solutions to AoC in Objective-C.
OCaml
Solutions to AoC in OCaml.
PHP
Solutions to AoC in PHP.
Pascal
Solutions to AoC in Pascal.
Perl
Solutions to AoC in Perl.
Picat
Solutions to AoC in Picat.
Pony
Solutions to AoC in Pony.
Prolog
Solutions to AoC in Prolog.
PowerShell
Solutions to AoC in PowerShell.
Python
Solutions to AoC in Python.
R
Solutions to AoC in R.
Racket
Solutions to AoC in Racket.
Raku
Solutions to AoC in Raku.
ReasonML
Solutions to AoC in ReasonML.
Red
Solutions to AoC in Red.
REXX
Solutions to AoC in REXX.
Rhombus
Solutions to AoC in Rhombus.
ROBO1
Solutions to AoC in ROBO1.
Roc
Solutions to AoC in Roc.
Ruby
Solutions to AoC in Ruby.
Rust
Solutions to AoC in Rust.
Smalltalk
Solutions to AoC in Smalltalk.
Scala
Solutions to AoC in Scala.
Scheme
Solutions to AoC in Scheme.
Solidity
Solutions to AoC in Solidity.
SpectX
Solutions to AoC in SpectX.
SQL
Solutions to AoC in SQL.
Standard ML
Solutions to AoC in Standard ML.
Swift
Solutions to AoC in Swift.
Tcl/Tk
Solutions to AoC in Tcl/Tk
TypeScript
Solutions to AoC in TypeScript.
TypeScript Types
Solutions to AoC in the TypeScript type system.
Unison
Solutions to AoC in Unison.
V
Solutions to AoC in V.
VB.NET
Solutions to AoC in VB.NET.
Vyxal
Solutions to AoC in Vyxal.
WebAssembly
Solutions to AoC in WebAssembly.
Whitespace
Solutions to AoC in Whitespace.
Zig
Solutions to AoC in Zig.
Zsh
Solutions to AoC in Zsh.
Live Streams
Folks who are live streaming their process.
adventofcode.md
Github