Rust Learning from Zero (23) —— The OwO software distribution system!

Although I've written a SSL management and distribution system, rcert, but the here immediately goes another problem: I still need to manually deploy the rcert, which is kind of frustrating. Or I can write some shell scripts to make this process automatically. Let's solve this (possibly) once and for all.

I built a handy (perhaps also buggy) software distribution system this time. This main purpose is of course to ease out the deployment process. And I'd like to call it OwO, because this emoji looks so nice and cool. Moreover, it should be able to deploy itself once I have the initial instance ran.

Basically, it will serve these pages and API endpoints below (let's take as its domain)

Admin is customisable
Sign In APINo
Sign Out APINo
Compile-time Static Files{filename}Web ResourcesYesThese files are compiled into the final binary
Feature Image{img}Web ResourcesNoFeature Image for Specific Project
Install Script{name}/install.shWeb ResourcesNoInstall Script for Specific Project
Project Resources{name}/resources/{resource_name}Web ResourcesNoResources for Specific Project
Update Project Info EndpointYesPost
Upload Project Resource EndpointYesPost, one file per request
Get Raw Install Script EndpointYesGet
Remove Project for Version EndpointYesPost
Remove Project Resource EndpointYesPost

Once I had decided these rules, the next question was which http server crate should I use. I considered hyper, but let's try something else this time. Thus OwO uses actix_web as its http server framework.

Apparently, OwO will output dynamic webpages, so it needs an HTML template engine. After some googling, I chose ructe as the template engine to render dynamic webpages for OwO.

And here is the result of 3 days' coding!

You can visit the live instance of my OwO at And the code goes here:

One thought on “Rust Learning from Zero (23) —— The OwO software distribution system!”

Leave a Reply

Your email address will not be published. Required fields are marked *

17 − 9 =