Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jaredgorski/arpx

Small-scale process orchestration
https://github.com/jaredgorski/arpx

automation concurrency orchestration orchestrator processes scheduling tasks

Last synced: about 2 months ago
JSON representation

Small-scale process orchestration

Awesome Lists containing this project

README

        

[![Build Status]][builds] [![Latest Version]][crates.io]

[Build Status]: https://github.com/jaredgorski/arpx/actions/workflows/build.yml/badge.svg
[builds]: https://github.com/jaredgorski/arpx/actions/workflows/build.yml
[Latest Version]: https://img.shields.io/crates/v/arpx?color=black
[crates.io]: https://crates.io/crates/arpx

# arpx

**Small-scale process orchestration**

---

- [Installation instructions](#installing)
- [Quick demo](https://github.com/jaredgorski/arpx/tree/main/docs/quick_demo.md)
- [How to use the CLI](https://github.com/jaredgorski/arpx/tree/main/docs/using_the_cli.md)
- [How to write a profile](https://github.com/jaredgorski/arpx/tree/main/docs/writing_a_profile.md)

## About

Arpx is a small-scale, run n' gun process orchestrator. In other words, Arpx makes it easy to schedule processes and automate them depending on each others' runtimes in cases where more complex orchestration isn't needed.

Larger-scale process orchestrators (like Kubernetes) allow for in-depth monitoring, complex deployment setups, and granular, real-time process management on top of their normal scheduling and automation features. Arpx, in contrast, aims to provide only that which is necessary for things like running multiple interdependent development servers concurrently, scheduling build scripts or tests in relation to each other, adding naive self-healing to local processes, etc.

> _**a**utomate and **r**elate **p**rocesses(**x**)_

Vaguely, Arpx's primary use-case is development-oriented tasks which variously require scheduling, concurrency, and/or unsophisticated runtime monitoring and handling.

_If you want to hack some orchestration into your development environment, Arpx might be right for you._

### Library vs. binary

The name "Arpx" variously refers to the library which provides the program's core functionality (the Arpx runtime object) as well as the binary which wraps that core functionality in a convenient CLI.

Library-specific documentation can be found on [docs.rs](https://docs.rs/arpx/latest/arpx/). Documentation in this repository focuses on the Arpx CLI tool.

## Installing

Arpx can be installed using the binaries build on each release or via Rust's [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html).

### Installing a release binary

1. Navigate to the [Releases](https://github.com/jaredgorski/arpx/releases) page
2. Choose a release
3. Download the appropriate archive for your machine
4. Unpack the archive and relocate the binary to your desired location
5. Ensure the binary is located in your system's `PATH`
6. Verify that `arpx --version` works on your command line

### Installing via Cargo

1. Install Rust on your machine ([docs](https://www.rust-lang.org/tools/install))
2. Execute `cargo install arpx` on your command line



#### Note on the philosophy behind this project


Arpx is meant to be a duct tape, run n' gun solution for hackily orchestrating program runtimes. Arpx doesn't seek to be a general-purpose, production-ready tool, but feel free to use it however you see fit (in line with the license).



If you have ideas for Arpx, please feel free to open an issue or contact me directly. I'm happy to discuss this project and any ideas you might have. However, please keep in mind that ideas and feature requests will likely only be implemented if they align well with the aforementioned goals.