quartz/content/Projects/rsgistry.md
2024-08-31 16:30:42 +10:00

1.9 KiB
Executable File
Raw Blame History

title tags date lastmod
🦀 rsgistry
foss
#rust
programming
project
difficulty-easy
seedling
2024-02-28 2024-02-28

Repository

I have a vision that all should take to write a customized, full-stack, ready-to-deploy registry web app for your packages or community extensions is editing a single type. Stylized as r/[es]/gistry, the app is geared towards reducing the overhead required for your community to be able to share their work built for-use-with or on-top-of your project. More info to come soon.

This entry will be a technical overview of my implementation choices and program design. Documentation on actually using the codebase will be hosted in the repository. Enjoy!

  • Sidebar: this was advanced for me but it will (hopefully) be extremely easy for someone with limited coding knowledge to fork and deploy in a way that supports their use case.

Background

Ive run into the same ecosystem problem in about three different spaces now: theres a really robust system for community extensions, but no real way to share them. Either theyre too trivial for individual GitHub repositories, too non-tech-oriented, or still need some additional metadata hosted online in order to have a good API consumer UX. Thus, Im adapting a test project into a batteries-included codebase for hosting a registry. API is in Axum and set up to be hosted for free on Shuttle, unsure about the frontend as of yet but looking at Leptos.

...The name stylization is just a regex joke, but it has the added benefit of teaching you how to pronounce it.

Implementation Details

Macros

I'm cultivating a tidbit on Programs I Like/rust-macros, so feel free to read for a practical introduction to the topic.

This program works by generating multiple model types, their helper functions, and sql queries all from a single type at compile time.