[package]
name = "gflow"
version = "0.4.13"
edition = "2021"
authors = ["PuQing <me@puqing.work>"]
repository = "https://github.com/AndPuQing/gflow.git"
documentation = "https://runqd.com"
license = "MIT"
description = "A lightweight, single-node job scheduler written in Rust."
keywords = ["slurm", "scheduler", "job", "rust"]
categories = ["command-line-interface"]
readme = "README.md"
[lib]
path = "src/lib.rs"
[[bin]]
name = "gflow"
path = "src/bin/gflow/main.rs"
[[bin]]
name = "gflowd"
path = "src/bin/gflowd/main.rs"
[[bin]]
name = "gbatch"
path = "src/bin/gbatch/main.rs"
[[bin]]
name = "gqueue"
path = "src/bin/gqueue/main.rs"
[[bin]]
name = "ginfo"
path = "src/bin/ginfo/main.rs"
[[bin]]
name = "gcancel"
path = "src/bin/gcancel/main.rs"
[[bin]]
name = "gjob"
path = "src/bin/gjob/main.rs"
[[bin]]
name = "gctl"
path = "src/bin/gctl/main.rs"
[[bin]]
name = "gstats"
path = "src/bin/gstats/main.rs"
[dependencies]
tmux_interface = { version = "0.4.0" }
tokio = { version = "1.43.0", default-features = false, features = [
"rt-multi-thread",
"fs",
"macros",
"sync",
"signal",
"io-util"
] }
clap = { version = "4.5.28", features = ["cargo", "derive"] }
clap_complete = "4.5.44"
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter", "fmt", "ansi", "json"] }
tracing-appender = "0.2"
prometheus = { version = "0.14.0", optional = true }
lazy_static = { version = "1.4.0", optional = true }
reqwest = { version = "0.13.0", features = [
"json",
"query",
"rustls-no-provider",
"webpki-roots"
], default-features = false }
rustls = { version = "0.23.36", default-features = false, features = ["ring"] }
axum = { version = "0.8.0", features = [
"http1",
"json",
"macros",
"tokio",
"query",
], default-features = false }
config = { version = "0.15.7", features = ["toml"], default-features = false }
dirs = "6.0.0"
serde = { version = "1.0.217", default-features = false, features = ["derive"] }
anyhow = "1.0.95"
strum = { version = "0.28.0", features = ["derive"] }
nvml-wrapper = "0.12.0"
serde_json = "1.0"
uuid = { version = "1.10.0", features = ["v4", "fast-rng"] }
range-parser = "0.1.2"
tabled = { version = "0.20.0", features = ["ansi"] }
owo-colors = "4.1.0"
shell-escape = "0.1.5"
regex = "1"
csv = "1.3"
socket2 = "0.6"
libc = "0.2"
clap-verbosity-flag = { version = "3.0.4", default-features = false, features = ["tracing"] }
chrono = { version = "0.4.42", features = ["clock"] }
chrono-tz = "0.10"
compact_str = { version = "0.9", features = ["serde"] }
smallvec = { version = "1.13", features = ["serde"] }
rmp-serde = "1.3"
serde_yaml = "0.9"
dialoguer = "0.12"
toml = "1.0"
[target.'cfg(target_arch = "x86_64")'.dependencies]
mimalloc = { version = "0.1", features = ["v3"] }
[features]
default = []
metrics = ["prometheus", "lazy_static"]
[build-dependencies]
anyhow = "1.0.95"
vergen-gix = { version = "9.0.0", features = ["build", "cargo"] }
[dev-dependencies]
mockall = "0.14.0"
tempfile = "3.16.0"
nvml-wrapper = "0.12.0"
tower = "0.5"
criterion = { version = "0.8", features = ["html_reports"] }
proptest = "1.5"
[[bench]]
name = "scheduler_bench"
harness = false
[profile.release]
strip = true
lto = "fat"
[profile.profiling]
inherits = "release"
strip = false
debug = "full"
lto = false
[profile.fast-build]
inherits = "dev"
opt-level = 1
debug = 0
strip = "debuginfo"
[profile.no-debug]
inherits = "dev"
debug = 0
strip = "debuginfo"
[profile.minimal-size]
inherits = "release"
opt-level = "z"
panic = "abort"
codegen-units = 1
[profile.dist]
inherits = "minimal-size"