[package]
edition = "2024"
rust-version = "1.99"
name = "harmos-runtime"
version = "0.1.13"
build = false
include = [
".cargo_vcs_info.json",
"CHANGELOG.md",
"Cargo.lock",
"Cargo.toml",
"benches/grpc/main.rs",
"benches/guest/main.rs",
"benches/operations/main.rs",
"benches/runtime/main.rs",
"benches/sidecar/commands.rs",
"benches/sidecar/fixture.rs",
"benches/sidecar/main.rs",
"benches/sidecar/system.rs",
"benches/sidecar/transfers.rs",
"benches/simulation/main.rs",
"benches/storage/contention.rs",
"benches/storage/directories.rs",
"benches/storage/files.rs",
"benches/storage/filesystem.rs",
"benches/storage/fixture.rs",
"benches/storage/ingestion.rs",
"benches/storage/main.rs",
"benches/storage/metrics.rs",
"benches/storage/query.rs",
"benches/storage/transforms.rs",
"benches/streams/main.rs",
"src/application.rs",
"src/config.rs",
"src/error.rs",
"src/filesystem/error.rs",
"src/filesystem/input.rs",
"src/filesystem/mod.rs",
"src/filesystem/publication/mod.rs",
"src/filesystem/publication/unix.rs",
"src/filesystem/publication/windows.rs",
"src/grpc/authentication.rs",
"src/grpc/codec.rs",
"src/grpc/decoding.rs",
"src/grpc/dynamic.rs",
"src/grpc/envelope.rs",
"src/grpc/generation.rs",
"src/grpc/inbound.rs",
"src/grpc/input.rs",
"src/grpc/listener.rs",
"src/grpc/manager.rs",
"src/grpc/middleware.rs",
"src/grpc/native.rs",
"src/grpc/origin.rs",
"src/grpc/reflection.rs",
"src/grpc/routing.rs",
"src/grpc/server/concurrency.rs",
"src/grpc/server.rs",
"src/grpc.rs",
"src/guest/collection.rs",
"src/guest/host/mod.rs",
"src/guest/host/sdk.rs",
"src/guest/host/serving.rs",
"src/guest/host/session.rs",
"src/guest/mod.rs",
"src/lib.rs",
"src/observers/driver.rs",
"src/observers/mod.rs",
"src/observers/native.rs",
"src/operations/admission.rs",
"src/operations/authored.rs",
"src/operations/authorization.rs",
"src/operations/binding.rs",
"src/operations/caller.rs",
"src/operations/catalog.rs",
"src/operations/children.rs",
"src/operations/component.rs",
"src/operations/context.rs",
"src/operations/execution.rs",
"src/operations/finalization.rs",
"src/operations/grpc.rs",
"src/operations/handler.rs",
"src/operations/instances.rs",
"src/operations/invocation.rs",
"src/operations/lane.rs",
"src/operations/manager/admission.rs",
"src/operations/manager/cache.rs",
"src/operations/manager/construction.rs",
"src/operations/manager/discovery.rs",
"src/operations/manager/entry.rs",
"src/operations/manager/grants.rs",
"src/operations/manager/inspection.rs",
"src/operations/manager/lookup.rs",
"src/operations/manager/mod.rs",
"src/operations/manager/registration.rs",
"src/operations/manager/registry.rs",
"src/operations/manager/residents.rs",
"src/operations/manager/retirement.rs",
"src/operations/manager/shutdown.rs",
"src/operations/manager/staging.rs",
"src/operations/manager/submission.rs",
"src/operations/middleware.rs",
"src/operations/mod.rs",
"src/operations/native.rs",
"src/operations/refusal.rs",
"src/operations/registration.rs",
"src/operations/remote.rs",
"src/operations/resident.rs",
"src/operations/scope.rs",
"src/operations/sdk.rs",
"src/operations/session.rs",
"src/operations/streaming.rs",
"src/operations/surface.rs",
"src/operations/wire.rs",
"src/plugin/backend.rs",
"src/plugin/definition.rs",
"src/plugin/definitions.rs",
"src/plugin/events.rs",
"src/plugin/host/guest.rs",
"src/plugin/host/progress.rs",
"src/plugin/host/sidecar.rs",
"src/plugin/host.rs",
"src/plugin/manager/retirement.rs",
"src/plugin/manager.rs",
"src/plugin/mod.rs",
"src/plugin/reload.rs",
"src/plugin/router.rs",
"src/plugin/scope.rs",
"src/plugin/status.rs",
"src/prelude.rs",
"src/records/listeners.rs",
"src/records/manager.rs",
"src/records/mod.rs",
"src/records/registration.rs",
"src/runtime/boot.rs",
"src/runtime/launch.rs",
"src/runtime/lifecycle.rs",
"src/runtime.rs",
"src/services/mod.rs",
"src/services/restart.rs",
"src/services/runner.rs",
"src/services/sidecar/carrier.rs",
"src/services/sidecar/cleanup.rs",
"src/services/sidecar/configuration.rs",
"src/services/sidecar/connection.rs",
"src/services/sidecar/exchange.rs",
"src/services/sidecar/frames.rs",
"src/services/sidecar/handshake.rs",
"src/services/sidecar/lifecycle.rs",
"src/services/sidecar/managed.rs",
"src/services/sidecar/mod.rs",
"src/services/sidecar/observers.rs",
"src/services/sidecar/physical.rs",
"src/sidecar/mod.rs",
"src/simulation/clock.rs",
"src/simulation/entropy.rs",
"src/simulation/executor.rs",
"src/simulation/mod.rs",
"src/state/capture.rs",
"src/state/envelope.rs",
"src/state/history.rs",
"src/state/managed.rs",
"src/state/manager.rs",
"src/state/mod.rs",
"src/state/record.rs",
"src/state/recovery.rs",
"src/state/snapshot.rs",
"src/state/snapshot_codec.rs",
"src/state/transaction.rs",
"src/state/writer.rs",
"src/storage/attachments.rs",
"src/storage/capture.rs",
"src/storage/consumer.rs",
"src/storage/manager.rs",
"src/storage/mod.rs",
"src/storage/state/journal.rs",
"src/storage/state/mod.rs",
"src/storage/writes.rs",
"src/streams/batches.rs",
"src/streams/definition.rs",
"src/streams/demand.rs",
"src/streams/ingest.rs",
"src/streams/listeners.rs",
"src/streams/manager.rs",
"src/streams/mod.rs",
"src/streams/publication.rs",
"src/streams/publications.rs",
"src/streams/reader.rs",
"src/streams/registration.rs",
"src/streams/series.rs",
"src/streams/staging.rs",
"src/streams/window.rs",
"src/supervision/cleanup.rs",
"src/supervision/dependencies.rs",
"src/supervision/executor.rs",
"src/supervision/instance.rs",
"src/supervision/listeners.rs",
"src/supervision/mod.rs",
"src/supervision/task.rs",
"tests/acceptance/main.rs",
"tests/acceptance/schematic.rs",
"tests/acceptance/storage.rs",
"tests/application/macros.rs",
"tests/application/main.rs",
"tests/fixtures/benchmark_grpc.rs",
"tests/fixtures/benchmark_protocol.rs",
"tests/fixtures/grpc/ca.pem",
"tests/fixtures/grpc/server-key.pem",
"tests/fixtures/grpc/server.pem",
"tests/fixtures/process_client.rs",
"tests/fixtures/process_provider.rs",
"tests/fixtures/stream_consumer.rs",
"tests/integration/main.rs",
"tests/integration/report.rs",
"tests/observers/execution.rs",
"tests/observers/host_accessor.rs",
"tests/observers/lifecycle.rs",
"tests/observers/main.rs",
"tests/observers/native.rs",
"tests/observers/registration.rs",
"tests/operations/admission.rs",
"tests/operations/causation.rs",
"tests/operations/children.rs",
"tests/operations/clock.rs",
"tests/operations/execution.rs",
"tests/operations/host.rs",
"tests/operations/lanes.rs",
"tests/operations/main.rs",
"tests/operations/middleware.rs",
"tests/operations/outcomes.rs",
"tests/operations/policy.rs",
"tests/operations/resources.rs",
"tests/operations/scoped.rs",
"tests/operations/shutdown.rs",
"tests/operations/wire/artifact.rs",
"tests/operations/wire/authored.rs",
"tests/operations/wire/authored_lifecycle.rs",
"tests/operations/wire/cases.rs",
"tests/operations/wire/dynamic.rs",
"tests/operations/wire/endpoints.rs",
"tests/operations/wire/grpc.rs",
"tests/operations/wire/grpc_manager.rs",
"tests/operations/wire/grpc_network.rs",
"tests/operations/wire/host.rs",
"tests/operations/wire/mod.rs",
"tests/operations/wire/owned_wire.rs",
"tests/operations/wire/plugin.rs",
"tests/operations/wire/plugin_activation.rs",
"tests/plugin/activation.rs",
"tests/plugin/main.rs",
"tests/plugin/reload.rs",
"tests/plugin/retirement.rs",
"tests/runtime/boot.rs",
"tests/runtime/lifecycle/application.rs",
"tests/runtime/lifecycle/mod.rs",
"tests/runtime/lifecycle/partial.rs",
"tests/runtime/lifecycle/shutdown.rs",
"tests/runtime/main.rs",
"tests/runtime/plugin.rs",
"tests/services/lifecycle.rs",
"tests/services/main.rs",
"tests/services/policy.rs",
"tests/services/readiness.rs",
"tests/services/recovery.rs",
"tests/services/scopes.rs",
"tests/services/shutdown.rs",
"tests/sidecar/admission.rs",
"tests/sidecar/composition.rs",
"tests/sidecar/consumption.rs",
"tests/sidecar/dependency_routing.rs",
"tests/sidecar/grants.rs",
"tests/sidecar/graph.rs",
"tests/sidecar/listeners.rs",
"tests/sidecar/main.rs",
"tests/sidecar/observer_demand.rs",
"tests/sidecar/observer_hosts.rs",
"tests/sidecar/operation_lifecycle.rs",
"tests/sidecar/operations.rs",
"tests/sidecar/process.rs",
"tests/sidecar/publication_delivery.rs",
"tests/sidecar/publications.rs",
"tests/sidecar/routing.rs",
"tests/sidecar/status.rs",
"tests/sidecar/streams.rs",
"tests/sidecar/visibility.rs",
"tests/simulation/inverses.rs",
"tests/simulation/main.rs",
"tests/state/capture.rs",
"tests/state/consumers.rs",
"tests/state/durability.rs",
"tests/state/durability_atomic_commit.rs",
"tests/state/durability_delivery.rs",
"tests/state/durability_history.rs",
"tests/state/durability_recovery.rs",
"tests/state/durability_retention.rs",
"tests/state/durability_wire.rs",
"tests/state/idempotency.rs",
"tests/state/listeners.rs",
"tests/state/main.rs",
"tests/state/managed.rs",
"tests/state/ordering.rs",
"tests/state/poison.rs",
"tests/state/records.rs",
"tests/state/undo.rs",
"tests/storage/coordinator.rs",
"tests/storage/main.rs",
"tests/storage/manager/mutations.rs",
"tests/storage/manager/production.rs",
"tests/storage/manager/recovery.rs",
"tests/storage/manager.rs",
"tests/storage/operations/deletion.rs",
"tests/storage/operations/files.rs",
"tests/storage/operations/objects.rs",
"tests/storage/operations/plugins.rs",
"tests/storage/operations/queries.rs",
"tests/storage/operations/schemas.rs",
"tests/storage/operations/writes.rs",
"tests/storage/operations.rs",
"tests/storage/runtime.rs",
"tests/storage/state/admission.rs",
"tests/storage/state/boot.rs",
"tests/storage/state/capture.rs",
"tests/storage/state/composition.rs",
"tests/storage/state/files.rs",
"tests/storage/state/managed.rs",
"tests/storage/state/reconcile.rs",
"tests/storage/state/snapshots.rs",
"tests/storage/state.rs",
"tests/streams/allocation.rs",
"tests/streams/listeners.rs",
"tests/streams/main.rs",
"tests/streams/retention.rs",
"tests/streams/series.rs",
"tests/streams/stream_batches.rs",
"tests/streams/streams_macros.rs",
"tests/support/allocation.rs",
"tests/support/app/minimal.rs",
"tests/support/app.rs",
"tests/support/durability.rs",
"tests/support/fixtures.rs",
"tests/support/journal.rs",
"tests/support/mod.rs",
"tests/support/native_publications.rs",
"tests/support/native_streams/plugin.rs",
"tests/support/native_streams.rs",
"tests/support/operations_fixture.rs",
"tests/support/pending.rs",
"tests/support/process_graph_contract.rs",
"tests/support/report.rs",
"tests/support/runtime_mirror.rs",
"tests/support/runtime_probe.rs",
"tests/support/simulation.rs",
"tests/support/storage_fixture.rs",
"tests/support/stream_batches.rs",
"tests/support/witness.rs",
"tests/system/guest.rs",
"tests/system/guest_contract/dependencies.rs",
"tests/system/guest_contract/dependency_admission.rs",
"tests/system/guest_contract/lifecycle.rs",
"tests/system/guest_contract/limits.rs",
"tests/system/guest_contract/mod.rs",
"tests/system/guest_contract/operations.rs",
"tests/system/guest_contract/publications.rs",
"tests/system/main.rs",
"tests/system/runtime.rs",
"tests/system/schematic.rs",
"tests/system/sidecar.rs",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Harmos runtime: managed state, undo, recovery, background work and typed streams."
readme = false
license = "Apache-2.0"
[features]
default = []
generate-proto = [
"dep:harmos-packaging",
"harmos-packaging/generate-proto",
]
grpc = [
"harmos-sdk/grpc",
"generate-proto",
"dep:tonic-reflection",
"dep:http-body",
"dep:heck",
"dep:bytes",
"dep:tonic",
"dep:prost-reflect",
"dep:tonic-web",
"dep:tower",
"dep:tower-http",
"tonic/tls-ring",
]
plugin = [
"dep:petgraph",
"dep:semver",
"semver/serde",
"dep:harmos-packaging",
]
plugin-guest = [
"plugin",
"dep:harmos-guest",
"harmos-guest/kit",
"harmos-guest/derive",
"dep:wasmtime",
]
plugin-sidecar = [
"plugin",
"dep:harmos-sidecar",
"harmos-sidecar/kit",
"harmos-sidecar/derive",
"tokio/io-util",
"tokio/process",
]
signal = []
signal-fft = [
"signal",
"harmos-storage/fft",
]
simulation = ["tokio/test-util"]
[lib]
name = "harmos_runtime"
path = "src/lib.rs"
[[bin]]
name = "harmos-grpc-benchmark-fixture"
path = "tests/fixtures/benchmark_grpc.rs"
test = false
bench = false
required-features = ["grpc"]
[[bin]]
name = "harmos-stream-consumer-fixture"
path = "tests/fixtures/stream_consumer.rs"
test = false
bench = false
required-features = ["plugin-sidecar"]
[[test]]
name = "integration"
path = "tests/integration/main.rs"
[[test]]
name = "acceptance"
path = "tests/acceptance/main.rs"
[[test]]
name = "system"
path = "tests/system/main.rs"
[[bench]]
name = "integration-operations"
path = "benches/operations/main.rs"
harness = false
[[bench]]
name = "integration-runtime"
path = "benches/runtime/main.rs"
harness = false
[[bench]]
name = "integration-sidecar"
path = "benches/sidecar/main.rs"
harness = false
required-features = ["plugin-sidecar"]
[[bench]]
name = "integration-simulation"
path = "benches/simulation/main.rs"
harness = false
required-features = ["simulation"]
[[bench]]
name = "integration-storage"
path = "benches/storage/main.rs"
harness = false
[[bench]]
name = "integration-streams"
path = "benches/streams/main.rs"
harness = false
[[bench]]
name = "system-grpc"
path = "benches/grpc/main.rs"
harness = false
required-features = ["grpc"]
[[bench]]
name = "system-guest"
path = "benches/guest/main.rs"
harness = false
required-features = ["plugin-guest"]
[[bench]]
name = "system-sidecar-host"
path = "benches/sidecar/system.rs"
harness = false
required-features = ["plugin-sidecar"]
[dependencies.bytes]
version = "1.12.1"
optional = true
default-features = false
[dependencies.futures-core]
version = "0.3.34"
default-features = true
[dependencies.futures-util]
version = "0.3.34"
features = ["std"]
default-features = false
[dependencies.getrandom]
version = "0.4.3"
features = [
"std",
"wasm_js",
]
default-features = false
[dependencies.harmos-domain]
version = "=0.1.13"
features = ["derive"]
default-features = false
[dependencies.harmos-guest]
version = "=0.1.13"
optional = true
default-features = false
[dependencies.harmos-macros]
version = "=0.1.13"
default-features = true
[dependencies.harmos-operations]
version = "=0.1.13"
features = ["runtime"]
default-features = false
[dependencies.harmos-packaging]
version = "=0.1.13"
optional = true
default-features = false
[dependencies.harmos-sdk]
version = "=0.1.13"
features = ["streaming"]
default-features = false
[dependencies.harmos-storage]
version = "=0.1.13"
default-features = false
[dependencies.heck]
version = "0.5.0"
optional = true
default-features = false
[dependencies.http-body]
version = "1.1.0"
optional = true
default-features = false
[dependencies.petgraph]
version = "0.8.3"
optional = true
default-features = true
[dependencies.prost-reflect]
version = "0.16.5"
features = ["serde"]
optional = true
default-features = false
[dependencies.semver]
version = "1.0.28"
optional = true
default-features = true
[dependencies.serde]
version = "1.0.229"
features = ["derive"]
default-features = true
[dependencies.serde_json]
version = "1.0.154"
features = ["raw_value"]
default-features = true
[dependencies.sha2]
version = "0.11.1"
default-features = true
[dependencies.tempfile]
version = "3.27.0"
default-features = true
[dependencies.thiserror]
version = "2.0.21"
default-features = true
[dependencies.tokio]
version = "1.54.1"
features = [
"sync",
"rt",
"sync",
"time",
"macros",
]
default-features = true
[dependencies.tonic]
version = "0.14.8"
optional = true
default-features = true
[dependencies.tonic-reflection]
version = "0.14.8"
features = ["server"]
optional = true
default-features = false
[dependencies.tonic-web]
version = "0.14.8"
optional = true
default-features = false
[dependencies.tower]
version = "0.5.3"
features = ["util"]
optional = true
default-features = false
[dependencies.tower-http]
version = "0.7.1"
features = ["cors"]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1.44"
default-features = true
[dev-dependencies.arrow-array]
version = "=60.1.0"
default-features = false
[dev-dependencies.arrow-buffer]
version = "=60.1.0"
default-features = false
[dev-dependencies.arrow-data]
version = "=60.1.0"
default-features = false
[dev-dependencies.arrow-ipc]
version = "=60.1.0"
default-features = false
[dev-dependencies.arrow-schema]
version = "=60.1.0"
default-features = false
[dev-dependencies.arrow-select]
version = "=60.1.0"
default-features = false
[dev-dependencies.base64]
version = "0.23.1"
features = ["alloc"]
default-features = false
[dev-dependencies.criterion]
version = "0.8.2"
features = [
"html_reports",
"plotters",
]
default-features = false
[dev-dependencies.flatbuffers]
version = "=25.12.19"
default-features = false
[dev-dependencies.futures-util]
version = "0.3.34"
features = [
"std",
"async-await-macro",
]
default-features = false
[dev-dependencies.http-body-util]
version = "0.1.5"
default-features = false
[dev-dependencies.prost]
version = "0.14.4"
features = ["derive"]
default-features = false
[dev-dependencies.protoc-bin-vendored]
version = "3.3.0"
default-features = false
[dev-dependencies.syn]
version = "3.0.9"
features = [
"full",
"visit",
]
default-features = true
[dev-dependencies.tar]
version = "0.4.46"
default-features = false
[dev-dependencies.tempfile]
version = "3.27.0"
default-features = true
[dev-dependencies.tokio]
version = "1.54.1"
features = [
"sync",
"io-util",
"macros",
"process",
"rt",
"rt-multi-thread",
"test-util",
"time",
]
default-features = true
[dev-dependencies.tracing-perfetto-file]
version = "0.1.1"
default-features = false
[dev-dependencies.tracing-subscriber]
version = "0.3.23"
features = [
"fmt",
"registry",
"std",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.harmos-sidecar]
version = "=0.1.13"
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.54.1"
features = [
"sync",
"rt-multi-thread",
]
default-features = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.wasmtime]
version = "=50.0.0"
features = [
"async",
"component-model",
"component-model-async",
"cranelift",
"parallel-compilation",
"runtime",
"std",
]
optional = true
default-features = false
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61.2"
features = [
"Win32_Foundation",
"Win32_System_Pipes",
"Win32_System_SystemInformation",
"Win32_Storage_FileSystem",
"Win32_System_WindowsProgramming",
]
default-features = false
[lints.clippy]
all = "warn"
[lints.rust]
unsafe_code = "warn"