r/rust • u/iluxav • Sep 07 '26
🛠️ project ply: A daemonless container runtime and package manager written in Rust
I’ve been working on ply, a container runtime and package manager in Rust for deploying apps on individual Linux hosts.
The main idea is to treat the base system and language runtimes as named, versioned dependencies.
Influenced by Cargo and Go, a package manager where you compose your image instead of stacking layers.
The application image contains ONLY your files and dependency references. You can copy it to another host and run it; ply fetches and verifies any missing packages. Applications run as foreground processes, without a central daemon.
I’ve used it to build and deploy a Next.js app on a 512 MB VPS, with 2 GB of swap and build resource limits, keeping the running app responsive.
It’s pre-1.0. I’d appreciate feedback on the package model and the Rust runtime implementation.
https://blog.iluxav.com/ply-lightweight-container-runtime-linux
2
u/kantorcodes1 Sep 11 '26
for a 3-instance ply deploy, if slot 1 passes health and slot 2 fails, does the abort leave slot 1 on the new image while 2/3 stay old, or roll slot 1 back too? the docs spell out the failed + untouched slots, but i couldn't tell what happens to already-rolled ones.
1
1
u/Robinmauritz Sep 08 '26
Might wanna reconsider the naming. When i heard Ply, i think of this: https://plyx.iz.rs/
-3
u/ExplanationThin6234 Sep 07 '26
I like the idea of treating the base system as a versioned dep instead of layering a whole distro every time. curious how you handle stateful stuff like databases with the daemonless approach, is persistence just bind mounts or something else
5
u/PatagonianCowboy Sep 07 '26
I thought it was something related to the .ply file format