Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/birkenfeld/advent
Advent of Code
https://github.com/birkenfeld/advent
Last synced: 2 months ago
JSON representation
Advent of Code
- Host: GitHub
- URL: https://github.com/birkenfeld/advent
- Owner: birkenfeld
- Created: 2023-01-23T19:24:13.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-04-02T17:53:21.000Z (9 months ago)
- Last Synced: 2024-10-10T16:09:43.452Z (3 months ago)
- Language: Rust
- Size: 1.4 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 🎄 Advent of Code 2015-2023 🎄
These are Rust-language solutions for the [coding-challenge advent
calendar](http://adventofcode.com/). You'll need stable Rust 1.65 and Cargo to
run.The code for the different years is in the respective subdirectories.
I've tried to make the solutions small and somewhat optimized for speed (so far,
no solution takes more than about a second on an up-to-date machine). Inputs
are included in text file form and parsed.### External code used
A custom helper library is used, called `advtools`. It provides utilities for
easily parsing the input files, which I don't want to rewrite each year, and
access to often used external crates like itertools and rayon.For tasks that require nontrivial datastructures or algorithms, I try to find
and use a third-party crate to show off the ease of using Rust's crates
infrastructures, e.g. `petgraph`.### Building
All code is contained in a single Cargo workspace, with a different binary
target for each day. Solutions are printed to stdout.A simple Makefile is also provided in order to run all years and/or days. Just
run `make` to run everything, or e.g. `make 2022` to run only one year.### `advtools`
This subdirectory contains a library I've developed over time to ease
boilerplate and keep utilities for common tasks, such as manipulation of things
on grids. It is also released under that name to `crates.io`.