| 1 | [package] |
| 2 | name = "proses" |
| 3 | version = "0.1.1" |
| 4 | edition = "2021" |
| 5 | description = "Proses – Professional Secure Execution System" |
| 6 | license = "MIT" |
| 7 | repository = "https://github.com/smbcloudXYZ/proses" |
| 8 | homepage = "https://smbcloud.xyz" |
| 9 | documentation = "https://docs.rs/proses" |
| 10 | keywords = ["process-manager", "daemon", "deploy", "nextjs", "tui"] |
| 11 | categories = ["command-line-utilities", "os"] |
| 12 | |
| 13 | [[bin]] |
| 14 | name = "proses" |
| 15 | path = "src/main.rs" |
| 16 | |
| 17 | # ── Runtime ──────────────────────────────────────────────────────────────────── |
| 18 | [dependencies] |
| 19 | |
| 20 | # CLI argument parsing |
| 21 | clap = { version = "4", features = ["derive"] } |
| 22 | |
| 23 | # Async runtime – used exclusively inside the background daemon process. |
| 24 | # The CLI itself is fully synchronous. |
| 25 | tokio = { version = "1", features = ["full"] } |
| 26 | |
| 27 | # ── Serialisation ────────────────────────────────────────────────────────────── |
| 28 | |
| 29 | # IPC protocol (newline-delimited JSON over a Unix domain socket) + |
| 30 | # persistent state store (~/.proses/store.json) |
| 31 | serde = { version = "1", features = ["derive"] } |
| 32 | serde_json = "1" |
| 33 | |
| 34 | # Timestamps and uptime calculations |
| 35 | chrono = { version = "0.4", features = ["serde"] } |
| 36 | |
| 37 | # ── Terminal UI ──────────────────────────────────────────────────────────────── |
| 38 | |
| 39 | # Primary TUI framework – live dashboard, log viewer, process table |
| 40 | ratatui = "0.29" |
| 41 | |
| 42 | # Event handling (keyboard, resize) – must match the version ratatui 0.29 uses |
| 43 | crossterm = "0.28" |
| 44 | |
| 45 | # ── System / Unix ────────────────────────────────────────────────────────────── |
| 46 | |
| 47 | # Low-level Unix syscalls: fork(2), setsid(2), dup2(2), kill(2), waitpid(2) |
| 48 | # All signal operations are done via raw libc for maximum portability and to |
| 49 | # avoid any version-skew issues with higher-level wrappers. |
| 50 | libc = "0.2" |
| 51 | |
| 52 | # ── Utilities ────────────────────────────────────────────────────────────────── |
| 53 | |
| 54 | # Ergonomic error handling throughout |
| 55 | anyhow = "1" |
| 56 | |
| 57 | # Home-directory resolution for ~/.proses/ |
| 58 | home = "0.5" |
| 59 | |
| 60 | # One-time global initialisation of the Config singleton |
| 61 | once_cell = "1" |
| 62 | |
| 63 | # ── Debian packaging (cargo-deb) ────────────────────────────────────────────── |
| 64 | [package.metadata.deb] |
| 65 | maintainer = "Seto Elkahfi <hej@setoelkahfi.se>" |
| 66 | section = "utils" |
| 67 | priority = "optional" |
| 68 | depends = "libc6 (>= 2.17)" |
| 69 | extended-description = """\ |
| 70 | Proses is a fast, secure process manager built in Rust. \ |
| 71 | One command starts your app, supervises it, restarts it on crash, \ |
| 72 | and captures its logs — no config files, no Node runtime, \ |
| 73 | no dependency hell. A single binary. A live terminal dashboard.""" |
| 74 | assets = [ |
| 75 | ["target/release/proses", "usr/bin/", "755"], |
| 76 | ] |