Home

kurv

Usage

Intro & Installation

kurv usage

Why kurv?

So, why the name kurv? Well, it means “basket” in many languages I don’t speak, like Norwegian (but it sounded cool 😄). Think of kurv as a basket for your apps. In kurv, we call each deployed app as an egg. So, let’s go and collect some eggs 🥚 in your basket 🧺.

Installation

Note

kurv can run either as a server or as a CLI client, using the same binary. The server is responsible for managing the eggs, while the client is used to interact with the server and tell it what to do or ask it for information.

crates.io

You can also install it from crates.io using cargo:

cargo install kurv

Manually from binary

Download the latest binary release from GitHub.

Testing

Let’s see if the installation worked. Run the following command:

$ kurv --version

If you see the version number, you’re good to go! 🎉

Inspiration

pm2

Inspired by the robust process manager, pm2, my goal with 𝐤𝐮𝐫𝐯 was to create a lightweight alternative. Not that pm2 is a resource hog, but I found myself in a server with extremely limited resources. Plus, I was itching for an excuse to dive into Rust, and voila, 𝐤𝐮𝐫𝐯 was born.

eggsecutor

Derived from eggsecutor, 𝐤𝐮𝐫𝐯 adopted the whimsical term “eggs” to represent deployed applications.

pueue

Insights from pueue were instrumental in helping me understand how to manage processes in Rust.

To do list

kurv is still under development. Here are some of the things I’m planning to add:

  • Simple password protection
  • Remotely manage eggs
  • SSL support
  • Handle cors correctly

And last but not least:

  • Tests (I know, I know… 🤭)

Plugins / extensions

Since kurv is a process manager, we can easily extend its functionality by adding plugin eggs (simple eggs managed by kurv itself that provide additional functionality).

Here are some ideas I have for plugins:

  • Web UI
  • Log Viewer
  • Log Rotation

Disclaimer

Warning

Heads up, this project is my Rust-learning playground and not production-ready yet:

  • Rust newbie alert! 🚨
  • I built this because my apps needed a process manager, and I had an itch to learn Rust. So, here it is… my first Rust project!
  • No tests yet 🤭
  • I’m using it for my own projects, but not on a grand scale.