Files
webpage/README.md
rm-dr bfa6d2c8d9
Some checks failed
CI / Check typos (push) Has been cancelled
CI / Check links (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Build and test (push) Has been cancelled
CI / Build container (push) Has been cancelled
CI / Deploy on waypoint (push) Has been cancelled
Migrate to servable
2025-11-27 20:25:30 -08:00

2.1 KiB

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...

Overview & Arch:

  • bin/webpage: Simple cli that starts service-webpage

  • 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: 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).
  • 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: