This is a collection of awesome resources related to the yearly Advent of Code challenge.
- The Official AoC Website
- The AoC Subreddit
- Project Templates
- Tools and Utilities
- Other Advent Calendars
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- Solutions
- Ada
- APL
- Arturo
- Assembly
- AWK
- Bash
- BQN
- C
- C#
- C++
- C3
- Clojure
- Common Lisp
- Crystal
- D
- Dart
- Deno
- Elixir
- Elm
- Emacs
- Erlang
- Excel
- F#
- Factor
- Gleam
- Go
- Groovy
- Hamler
- Haskell
- Haxe
- HolyC
- Hoon
- Idris
- J
- Java
- JavaScript
- jq
- Julia
- Kotlin
- LDPL
- Lua
- M4
- MATLAB
- Nim
- Nushell
- Objective-C
- OCaml
- PHP
- Perl
- Picat
- Pony
- PowerShell
- Prolog
- Python
- R
- Racket
- Raku
- ReasonML
- Red
- REXX
- Rhombus
- ROBO1
- Roc
- Ruby
- Rust
- Smalltalk
- Scala
- Scheme
- Solidity
- SpectX
- SQL
- Standard ML
- Swift
- TypeScript
- TypeScript Types
- Unison
- V
- VB.NET
- Whitespace
- Zig
- Zsh
- Live Streams
- Solutions
Templates, cookiecutters and skeletons for quickly setting up projects in your favourite language.
- AlexeSimon/adventofcode (Python)
- Jadarma/advent-of-code-kotlin-template (Kotlin)
- Kaitachi/ChallengeStarter (Swift)
- Reason Starter kit for Advent of Code (Reason and OCaml)
- S-ecki/AdventOfCode-Starter-Dart (Dart)
- SpexGuy/Zig-AoC-Template (Zig)
- UncleCJ/advent-of-code (Jupyter Python Notebooks)
- advent-of-code-template (PHP)
- alvesvaren/AoC-template (Python)
- amorriscode/advent-of-code (JavaScript)
- arkadye/advent_of_code (C++)
- caderek/aoc-starter-js (JavaScript)
- caderek/aoc-starter-ts (TypeScript)
- dave-burke/advent-of-code-java-starter (Java)
- eduherminio/AdventOfCode.Template (C#)
- eduherminio/AdventOfCode.MultiYearTemplate (C#)
- encse/adventofcode-template (C#)
- fspoettel/advent-of-code-rust (Rust)
- gahjelle/template-aoc-python (Python)
- gobanos/cargo-aoc (Rust)
- hughjdavey/aoc-kotlin-starter (Kotlin)
- ismtabo/advent-of-code-deno-template (TypeScript / Deno)
- izexi/aoc-ts-template (TypeScript)
- jjcomer/aoc-helper (Clojure)
- kindermoumoute/adventofcode (Go)
- kotlin-hands-on/advent-of-code-kotlin-template (Kotlin)
- mMosiur/AdventOfCodeDayTemplate (C#)
- mariotacke/template-advent-of-code (JavaScript)
- mhanberg/advent-of-code-clojure-starter (Clojure)
- mhanberg/advent-of-code-elixir-starter (Elixir)
- nickyvanurk/advent-of-code-rust-template (Rust)
- nnari/aoc-typescript-starter (TypeScript)
- pacso/aoc_rb (Ruby)
- sindrekjr/AdventOfCodeBase (C#)
- staylorwr/elixir_aoc (Elixir)
- tomfran/advent-of-code-setup (Python)
- wizardofzos/aoc2021 (Flask-API, Python running REXX on Mainframes)
- fangyi-zhou/advent-of-code-ocaml-starter (OCaml)
- xavdid/advent-of-code-python-template (Python)
- rvanasa/aoc-motoko-starter (Motoko)
- matijaoe/advent-of-code (TypeScript / Bun)
- wlchs/advent_of_code_go_template (Go)
- dvoiejanovic/advent-of-ruby (Ruby)
- KaNaDaAT/AOCSetup (C#)
- devries/aoc_template (Go)
- TanklesXL/gladvent Gleam
- JohnBjrk/adglent Gleam
- pgebert/advent-of-code-kotlin-template (Kotlin)
- jromero132/advent-of-code (Python)
- 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 usingesb
! (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)
24 days of cool stuff regarding .
WARNING: All of these likely contain spoilers.
Read CONTRIBUTING.md to learn how to add your own repos.
Solutions to AoC in Ada.
Solutions to AoC in APL.
Solutions to AoC in Arturo.
Solutions to AoC in Assembly.
Solutions to AoC in AWK.
Solutions to AoC in Bash.
Solutions to AoC in BQN.
Solutions to AoC in C.
Solutions to AoC in C#.
Solutions to AoC in C++.
Solutions to AoC in C3.
Solutions to AoC in Clojure.
Solutions to AoC in Common Lisp.
Solutions to AoC in Crystal.
Solutions to AoC in D.
Solutions to AoC in Dart.
Solutions to AoC in Deno.
Solutions to AoC in Elixir.
Solutions to AoC in Elm and Literate Elm.
Solutions to AoC in Emacs Lisp (elisp).
Solutions to AoC in Erlang.
Solutions to AoC in Excel.
Solutions to AoC in F#.
Solutions to AoC in Factor.
Solutions to AoC in Gleam.
Solutions to AoC in Go.
Solutions to AoC in Groovy.
Solutions to AoC in Hamler.
Solutions to AoC in Haskell.
Solutions to AoC in Haxe.
Solutions to AoC in HolyC (TempleOS).
Solutions to AoC in Hoon (Urbit).
Solutions to AoC in Idris.
Solutions to AoC in J.
Solutions to AoC in Java.
Solutions to AoC in JavaScript.
Solutions to AoC in jq.
Solutions to AoC in Julia.
Solutions to AoC in Kotlin.
Solutions to AoC in LDPL.
Solutions to AoC in Lua.
Solutions to AoC in M4.
Solutions to AoC in MATLAB (Octave).
Solutions to AoC in Nim.
Solutions to AoC in Nushell.
Solutions to AoC in Objective-C.
Solutions to AoC in OCaml.
Solutions to AoC in PHP.
Solutions to AoC in Perl.
Solutions to AoC in Picat.
Solutions to AoC in Pony.
Solutions to AoC in Prolog.
Solutions to AoC in PowerShell.
Solutions to AoC in Python.
Solutions to AoC in R.
Solutions to AoC in Racket.
Solutions to AoC in Raku.
Solutions to AoC in ReasonML.
Solutions to AoC in Red.
Solutions to AoC in REXX.
Solutions to AoC in Rhombus.
Solutions to AoC in ROBO1.
Solutions to AoC in Roc.
Solutions to AoC in Ruby.
Solutions to AoC in Rust.
Solutions to AoC in Smalltalk.
Solutions to AoC in Scala.
Solutions to AoC in Scheme.
Solutions to AoC in Solidity.
Solutions to AoC in SpectX.
Solutions to AoC in SQL.
Solutions to AoC in Standard ML.
Solutions to AoC in Swift.
Solutions to AoC in TypeScript.
Solutions to AoC in the TypeScript type system.
Solutions to AoC in Unison.
Solutions to AoC in V.
Solutions to AoC in VB.NET.
Solutions to AoC in Whitespace.
Solutions to AoC in Zig.
Solutions to AoC in Zsh.
Folks who are live streaming their process.