Advent Of Code
Go to file
2023-12-02 00:28:26 +01:00
_templates/riddle/new ts import dir 2023-12-02 00:28:00 +01:00
.vscode update deps 2023-11-01 23:28:25 +01:00
2019 day 2 2023-11-02 01:05:56 +01:00
2020 move to 2020 fodler 2021-12-01 11:43:46 +01:00
2021 remove inputs 2022-12-10 02:11:48 +01:00
2022 refactor 2023-11-19 16:51:29 +01:00
2023/01 2023 01 ts 2023-12-02 00:28:10 +01:00
.gitignore add rust 2023-11-18 16:45:50 +01:00
.nvmrc add ts 2023-11-29 15:57:17 +01:00
bun.lockb add ts 2023-11-29 15:57:17 +01:00
Cargo.lock add rust 2023-11-18 16:45:50 +01:00
Cargo.toml day 2 2023-11-19 16:44:12 +01:00
package.json remove type module 2023-12-02 00:28:26 +01:00
poetry.lock update deps 2023-11-01 23:28:25 +01:00
pyproject.toml update deps 2023-11-01 23:28:25 +01:00
README.md readme 2023-11-29 16:02:54 +01:00
rust-toolchain.toml benchmarks 2023-11-18 17:52:07 +01:00
tsconfig.json add ts 2023-11-29 15:57:17 +01:00

Advent Of Code

Template repository for Advent of Code. It automatically downloads your puzzle inputs and bootstraps files for the following languages:

  • Typescript
  • Python
  • Rust

Have fun! 🤗🎄

Getting started

New "days" are generated with hygen. This will bootstrap code for python and rust. See details about the specifica languages below

# First time setup
bun i

# Put the Advent of Code token into .env (details below)

# Generate day
bun run gen --year 2022 --day 1

Extracting the Advent of Code cookie

  1. Navigate to https://adventofcode.com/ and login.
  2. Open dev tools and copy the cookie named session.
  3. save TOKEN=<my-token> to .env.

Languages

Below are instructions for the specific handling of each language included.

Typescript

Run a single day:

# Once
bun run 2022/01/typescript/main.ts

# Rerun on change
bun run --watch 2022/01/typescript/main.ts

Python

# Get a python enabled shell, with the latest version
poetry shell

# Run once
python 2022/01/python/main.py

# Rerun on change
bunx nodemon 2022/01/python/main.py

Rust

Run a single day:

# Once
cargo run --bin 2022-01

# Rerun on change (requires: https://github.com/watchexec/cargo-watch)
cargo watch -x 'run --bin 2022-01'

Benchmark a day:

cargo bench --bin 2022-01

Benchmark all days:

cargo bench

The benchmark is the built in Rust one. This is the reason for the nightly version.