[package] name = "homestar-runtime" version = { workspace = true } description = "Homestar runtime implementation" keywords = ["ipfs", "ipld", "ipvm", "runtime", "workflow"] categories = { workspace = true } license = { workspace = true } readme = "README.md" edition = { workspace = true } rust-version = { workspace = true } documentation = "https://docs.rs/homestar-runtime" repository = "https://github.com/ipvm-wg/homestar/tree/main/homestar-runtime" authors = { workspace = true } autotests = false default-run = "homestar" [lib] path = "src/lib.rs" bench = false doctest = true [[bin]] name = "homestar" path = "src/main.rs" doc = false bench = false [[test]] name = "integration" path = "tests/main.rs" [dependencies] # return to version.workspace = true after the following issue is fixed: # https://github.com/DevinR528/cargo-sort/issues/47 anyhow = { workspace = true } async-trait = "0.1" atomic_refcell = { workspace = true } byte-unit = { workspace = true } chrono = { workspace = true } clap = { version = "4.4", default-features = false, features = [ "derive", "color", "help", "env", "std", "usage", ] } config = { version = "0.14", default-features = false, features = ["toml"] } console-subscriber = { version = "0.2", default-features = false, features = [ "parking_lot", ], optional = true } const_format = { workspace = true } crossbeam = "0.8" dagga = "0.2" ed25519-compact = "2.1" ed25519-dalek = { version = "2.1", features = ["pem"] } dashmap = "5.5" derive-getters = "0.3" derive_builder = "0.13" diesel = { version = "2.1", default-features = false, features = [ "sqlite", "r2d2", "returning_clauses_for_sqlite_3_35", "with-deprecated", "chrono", ] } diesel-derive-enum = { version = "2.1", features = ["sqlite"] } diesel_migrations = "2.1" dotenvy = "0.15" dyn-clone = "1.0" enum-assoc = { workspace = true } faststr = { workspace = true } flume = { version = "0.11", default-features = false, features = ["async"] } fnv = { version = "1.0", default-features = false } futures = { workspace = true } hickory-resolver = { version = "0.24", default-features = false } homestar-invocation = { version = "0.3", path = "../homestar-invocation", features = [ "diesel", ] } homestar-wasm = { version = "0.3", path = "../homestar-wasm", default-features = false } homestar-workflow = { version = "0.3", path = "../homestar-workflow" } homestar-workspace-hack = { workspace = true } http = "0.2" http-serde = "1.1" humantime = { workspace = true } hyper = { version = "0.14", default-features = false } indexmap = { workspace = true } inquire = "0.6" ipfs-api = { version = "0.17", optional = true } ipfs-api-backend-hyper = { version = "0.6", default-features = false, features = [ "with-builder", "with-send-sync", ], optional = true } itertools = { workspace = true } jsonrpsee = { version = "0.21", default-features = false, features = [ "server", ] } libipld = { workspace = true } libp2p = { version = "0.53", default-features = false, features = [ "dns", "kad", "request-response", "rendezvous", "identify", "ed25519", "secp256k1", "mdns", "gossipsub", "request-response", "rsa", "tokio", "tcp", "noise", "cbor", "yamux", "serde", "quic", "websocket", ] } libsqlite3-sys = { workspace = true } maplit = "1.0" metrics = { version = "0.21", default-features = false } metrics-exporter-prometheus = { version = "0.12.1", default-features = false, features = [ "http-listener", ] } metrics-util = "0.15" miette = { version = "5.10", default-features = false, features = ["fancy"] } moka = { version = "0.12.4", default-features = false, features = [ "future", "sync", ] } names = { version = "0.14", default-features = false } once_cell = { version = "1.18", default-features = false } proptest = { version = "1.2", optional = true } puffin = { version = "0.19", default-features = false, optional = true } puffin_egui = { version = "0.23.0", default-features = false, optional = true } rand = { workspace = true } regex = "1.10" reqwest = { version = "0.11", default-features = false, features = [ "blocking", "json", ] } schemars = { workspace = true } sec1 = { version = "0.7", default-features = false, features = ["pem"] } semver = { version = "1.0", default-features = false } serde = { workspace = true } serde_ipld_dagcbor = { workspace = true } serde_json = { workspace = true } serde_with = { version = "3.5", default-features = false, features = [ "base64", "macros", "std", ] } stream-cancel = "0.8" sysinfo = { version = "0.29", default-features = false, optional = true } tabled = { version = "0.15", default-features = false, features = [ "derive", "macros", ] } tarpc = { version = "0.33", default-features = false, features = [ "serde-transport", "tcp", ] } thiserror = { workspace = true } tokio = { workspace = true } tokio-serde = { version = "0.8", default-features = false, features = [ "messagepack", ] } tokio-stream = { version = "0.1", default-features = false, features = [ "sync", ] } tokio-util = { version = "0.7", default-features = false } toml = { version = "0.8.11", features = ["display", "preserve_order"] } tower = { version = "0.4", default-features = false, features = [ "log", "timeout", ] } tower-http = { version = "0.4", default-features = false, features = [ "trace", "sensitive-headers", "catch-panic", "cors", ] } tracing = { workspace = true } tracing-appender = "0.2" tracing-logfmt = "0.3" tracing-subscriber = { version = "0.3", default-features = false, features = [ "env-filter", "parking_lot", "registry", ] } tryhard = "0.5" typetag = "0.2" url = "2.4" uuid = { version = "1.6.1", features = ["v4"] } [target.'cfg(not(windows))'.dependencies] daemonize = "0.5" [build-dependencies] vergen = { version = "8.3", default-features = false, features = [ "build", "cargo", "git", "gitcl", ] } [dev-dependencies] assert_cmd = "2.0" criterion = "0.5" homestar-invocation = { version = "0.3", path = "../homestar-invocation", features = [ "diesel", "test-utils", ] } homestar_runtime_proc_macro = { path = "src/test_utils/proc_macro", package = "homestar-runtime-tests-proc-macro" } jsonrpsee = { version = "0.21", default-features = false, features = [ "client", ] } nix = { version = "0.28", features = ["signal"] } port-selector = "0.1" predicates = { version = "3.0", default-features = false } prometheus-parse = "0.2.4" rand = { workspace = true } retry = { version = "2.0", default-features = false } rm_rf = "0.6" serial_test = { version = "3.0", features = ["file_locks"] } strip-ansi-escapes = "0.2.0" sysinfo = { version = "0.29", default-features = false } tokio-test = "0.4" tokio-tungstenite = { version = "0.21", default-features = false, features = [ "connect", ] } wait-timeout = "0.2" [target.'cfg(not(windows))'.dev-dependencies] libc = "0.2" [target.'cfg(windows)'.dev-dependencies] winapi = "0.3" [features] default = ["wasmtime-default", "ipfs", "monitoring", "websocket-notify"] dev = ["ansi-logs", "ipfs", "monitoring", "websocket-notify"] ansi-logs = ["tracing-logfmt/ansi_logs"] console = ["dep:console-subscriber"] ipfs = ["dep:ipfs-api", "dep:ipfs-api-backend-hyper"] monitoring = ["dep:sysinfo"] profile = ["dep:puffin", "dep:puffin_egui"] test-utils = ["dep:proptest", "homestar-invocation/test-utils"] wasmtime-default = ["homestar-wasm/default"] websocket-notify = [] [package.metadata.docs.rs] all-features = true # defines the configuration attribute `docsrs` rustdoc-args = ["--cfg", "docsrs"] [package.metadata.deb.variants.x86_64-unknown-linux-musl] maintainer = "James Walker " license-file = ["LICENSE", "0"] extended-description-file = "README.md" depends = "" section = "network" priority = "optional" assets = [ [ "../target/x86_64-unknown-linux-musl/release/homestar", "usr/bin/", "755", ], [ "../CHANGELOG.md", "usr/share/doc/homestar/", "644", ], [ "../LICENSE", "usr/share/doc/homestar/", "644", ], [ "../README.md", "usr/share/doc/homestar/", "644", ], ] [package.metadata.deb.variants.x86_64-unknown-linux-gnu] maintainer = "James Walker " license-file = ["LICENSE", "0"] extended-description-file = "README.md" depends = "" section = "network" priority = "optional" assets = [ [ "../target/x86_64-unknown-linux-gnu/release/homestar", "usr/bin/", "755", ], [ "../CHANGELOG.md", "usr/share/doc/homestar/", "644", ], [ "../LICENSE", "usr/share/doc/homestar/", "644", ], [ "../README.md", "usr/share/doc/homestar/", "644", ], ] [package.metadata.generate-rpm.variants.x86_64-unknown-linux-musl] assets = [ { source = "../target/x86_64-unknown-linux-musl/release/homestar", dest = "/usr/bin/homestar", mode = "755" }, { source = "../CHANGELOG.md", dest = "/usr/share/doc/homestar/CHANGELOG.md", mode = "644", doc = true }, { source = "../LICENSE", dest = "/usr/share/doc/homestar/LICENSE.md", mode = "644", doc = true }, { source = "../README.md", dest = "/usr/share/doc/homestar/README.md", mode = "644", doc = true }, ] [package.metadata.generate-rpm.variants.x86_64-unknown-linux-gnu] assets = [ { source = "../target/x86_64-unknown-linux-gnu/release/homestar", dest = "/usr/bin/homestar", mode = "755" }, { source = "../CHANGELOG.md", dest = "/usr/share/doc/homestar/CHANGELOG.md", mode = "644", doc = true }, { source = "../LICENSE", dest = "/usr/share/doc/homestar/LICENSE.md", mode = "644", doc = true }, { source = "../README.md", dest = "/usr/share/doc/homestar/README.md", mode = "644", doc = true }, ] [package.metadata.cargo-machete] ignored = ["homestar-workspace-hack", "libsqlite3-sys", "puffin", "puffin_egui"] [package.metadata.cargo-udeps.ignore] normal = ["homestar-workspace-hack", "libsqlite3-sys", "puffin", "puffin_egui"]