[utoipa]: https://docs.rs/utoipa/latest/utoipa/ [axum]: https://docs.rs/axum/latest/axum/ [betalupi.com]: https://betalupi.com # Mark's webpage This is the source code behind [betalupi.com], featuring a very efficient mini web framework written from scratch in Rust. It uses... - [Axum](https://github.com/tokio-rs/axum) as an http server - [Maud](https://maud.lambda.xyz/) for html templates - [Grass](https://github.com/connorskees/grass) to parse and compile [sass](https://sass-lang.com/) - [markdown-it](https://github.com/markdown-it-rust/markdown-it) to convert md to html ## Overview & Arch: - [`bin/webpage`](./crates/bin/webpage/): Simple cli that starts `service-webpage` - [`lib/libservice`](./crates/lib/libservice): Provides the `Service` trait. A service is a group of http routes with an optional [utoipa] schema. \ This library decouples compiled binaries from the services they provide, and makes sure all services are self-contained. - [`lib/page`](./crates/lib/page): Provides `PageServer`, which builds an [axum] router that provides a caching and headers for resources served through http. - Also provides `Servable`, which is a trait for any resource that may be served. - the `Page` servable serves html generated by a closure. - the `StaticAsset` servable serves static assets (css, images, misc files), and provides transformation parameters for image assets (via [`pixel-transform`](./crates/lib/pixel-transform)). - [`service/service-webpage`](./crates/service/service-webpage): A `Service` that runs a `PageServer` that provides the content on [betalupi.com] ## Todo: This web framework is nowhere near complete. Features are added as they are needed. ### Asset server - generate asset server from dir, detect mime from file - icon svg - CORS,timeout, page cache ### Misc: - reactive components with react or htmx - handout search - self-contained email mangler - check asset paths at compile-time (or at least in a test) ### Content: - TetrOS: - https://git.betalupi.com/Mark/tetros - https://git.betalupi.com/Mark/tetris-os - Pick: - https://git.betalupi.com/Mark/pick - Minimax - HTWAH