Solutions to Advent of Code problems (2015-2021) in Rust.
For learning and demonstration purposes, this repository contains additional resources building on the solutions:
- crates/core: The solutions themselves as a library and a command-line tool.
- Published as a crate.
- The command-line tool is wrapped in Docker and published to Docker Hub.
- No unsafe code.
- crates/grpc-server: Server with a gRPC API using Tonic.
- Deployed to fly.io.
- crates/http-server: Server with a HTTP API using warp.
- Deployed to fly.io.
- API is described by a OpenAPI interface at aoc.fornwall.net/api/.
- crates/fuzzing-afl: Fuzzing using afl.
- crates/fuzzing-hfuzz: Fuzzing using hongfuzz.
- crates/fuzzing-libfuzzer: Fuzzing using libFuzzer.
- crates/java: Java library using JNI.
- Published to Maven Central.
- crates/python: Python library wrapping the solutions using PyO3.
- Published to PyPI.
- crates/wasm: WebAssembly build using wasm-bindgen.
- Published to a static site at aoc.fornwall.net.
- Published to npm.
- Deployed to Cloudflare Workers.
- Deployed to Netlify Functions.
All builds and deployments are done from the CI using Github Actions.