@rivetkit/engine 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +203 -0
- package/artifacts/errors/actor.destroyed_during_creation.json +5 -0
- package/artifacts/errors/actor.destroyed_while_waiting_for_ready.json +5 -0
- package/artifacts/errors/actor.duplicate_key.json +5 -0
- package/artifacts/errors/actor.empty_key.json +5 -0
- package/artifacts/errors/actor.input_too_large.json +5 -0
- package/artifacts/errors/actor.key_reserved_in_different_datacenter.json +5 -0
- package/artifacts/errors/actor.key_too_large.json +5 -0
- package/artifacts/errors/actor.kv_key_not_found.json +5 -0
- package/artifacts/errors/actor.namespace_not_found.json +5 -0
- package/artifacts/errors/actor.no_runners_available.json +5 -0
- package/artifacts/errors/actor.not_found.json +5 -0
- package/artifacts/errors/api.bad_request.json +5 -0
- package/artifacts/errors/api.forbidden.json +5 -0
- package/artifacts/errors/api.internal_error.json +5 -0
- package/artifacts/errors/api.not_found.json +5 -0
- package/artifacts/errors/api.rate_limited.json +5 -0
- package/artifacts/errors/api.unauthorized.json +5 -0
- package/artifacts/errors/datacenter.not_found.json +5 -0
- package/artifacts/errors/guard.actor_destroyed.json +5 -0
- package/artifacts/errors/guard.actor_not_found.json +5 -0
- package/artifacts/errors/guard.actor_ready_timeout.json +5 -0
- package/artifacts/errors/guard.connection_error.json +5 -0
- package/artifacts/errors/guard.http_request_build_failed.json +5 -0
- package/artifacts/errors/guard.missing_header.json +5 -0
- package/artifacts/errors/guard.must_use_regional_host.json +5 -0
- package/artifacts/errors/guard.no_route.json +5 -0
- package/artifacts/errors/guard.no_route_targets.json +5 -0
- package/artifacts/errors/guard.rate_limit.json +5 -0
- package/artifacts/errors/guard.request_build_error.json +5 -0
- package/artifacts/errors/guard.request_timeout.json +5 -0
- package/artifacts/errors/guard.retry_attempts_exceeded.json +5 -0
- package/artifacts/errors/guard.service_unavailable.json +5 -0
- package/artifacts/errors/guard.target_changed.json +5 -0
- package/artifacts/errors/guard.upstream_error.json +5 -0
- package/artifacts/errors/guard.uri_parse_error.json +5 -0
- package/artifacts/errors/guard.websocket_pending_limit_reached.json +5 -0
- package/artifacts/errors/guard.websocket_service_hibernate.json +5 -0
- package/artifacts/errors/guard.websocket_service_timeout.json +5 -0
- package/artifacts/errors/guard.websocket_service_unavailable.json +5 -0
- package/artifacts/errors/guard.wrong_addr_protocol.json +5 -0
- package/artifacts/errors/kv.leader_forwarding_failed.json +5 -0
- package/artifacts/errors/kv.no_leader_elected.json +5 -0
- package/artifacts/errors/kv.not_leader.json +5 -0
- package/artifacts/errors/kv.response_channel_closed.json +5 -0
- package/artifacts/errors/namespace.failed_to_create.json +5 -0
- package/artifacts/errors/namespace.invalid_name.json +5 -0
- package/artifacts/errors/namespace.invalid_update.json +5 -0
- package/artifacts/errors/namespace.name_not_unique.json +5 -0
- package/artifacts/errors/namespace.not_found.json +5 -0
- package/artifacts/errors/namespace.not_leader.json +5 -0
- package/artifacts/errors/runner.not_found.json +5 -0
- package/artifacts/errors/runner_config.invalid.json +5 -0
- package/artifacts/errors/runner_config.not_found.json +5 -0
- package/artifacts/errors/test.input_too_large.json +5 -0
- package/artifacts/errors/test.key_too_large.json +5 -0
- package/artifacts/errors/test.meta_error.json +5 -0
- package/artifacts/errors/test.not_found.json +5 -0
- package/artifacts/errors/test.simple_error.json +5 -0
- package/artifacts/errors/test.test_error.json +5 -0
- package/artifacts/errors/ups.publish_failed.json +5 -0
- package/artifacts/errors/ups.request_timeout.json +5 -0
- package/artifacts/errors/validation.invalid_input.json +5 -0
- package/artifacts/errors/validation.no_keys.json +5 -0
- package/artifacts/errors/validation.race_condition.json +5 -0
- package/artifacts/errors/validation.too_many_actor_ids.json +5 -0
- package/artifacts/errors/ws.connection_closed.json +5 -0
- package/artifacts/errors/ws.eviction.json +5 -0
- package/artifacts/errors/ws.invalid_initial_packet.json +5 -0
- package/artifacts/errors/ws.invalid_packet.json +5 -0
- package/artifacts/errors/ws.invalid_url.json +5 -0
- package/artifacts/errors/ws.timed_out_waiting_for_init.json +5 -0
- package/artifacts/openapi.json +1833 -0
- package/contrib-docs/ACTOR_KEY_RESERVATION.md +101 -0
- package/contrib-docs/API.md +11 -0
- package/contrib-docs/DOCKER.md +5 -0
- package/contrib-docs/ERRORS.md +13 -0
- package/contrib-docs/GUARD.md +76 -0
- package/contrib-docs/PEGBOARD_TUNNEL_RETRIES.md +83 -0
- package/contrib-docs/RUNNER_LIFECYCLE.md +172 -0
- package/contrib-docs/SDKS.md +9 -0
- package/contrib-docs/TEST_DEPENDENCIES.md +43 -0
- package/contrib-docs/design-choicse/EMBEDDED_KV.md +80 -0
- package/contrib-docs/operate/TRACING_RECONFIGURE.md +78 -0
- package/docker/dev/.gitattributes +1 -0
- package/docker/dev/README.md +74 -0
- package/docker/dev/clickhouse/client-config.xml +5 -0
- package/docker/dev/clickhouse/config.xml +52 -0
- package/docker/dev/clickhouse/init/01-create-otel-table.sql +107 -0
- package/docker/dev/clickhouse/users.xml +35 -0
- package/docker/dev/docker-compose.yml +217 -0
- package/docker/dev/grafana/dashboards/api.json +1240 -0
- package/docker/dev/grafana/dashboards/cache.json +1075 -0
- package/docker/dev/grafana/dashboards/futures.json +230 -0
- package/docker/dev/grafana/dashboards/gasoline.json +2477 -0
- package/docker/dev/grafana/dashboards/guard.json +1274 -0
- package/docker/dev/grafana/dashboards/tokio.json +1005 -0
- package/docker/dev/grafana/dashboards/traces.json +957 -0
- package/docker/dev/grafana/grafana.ini +14 -0
- package/docker/dev/grafana/provisioning/dashboards/dashboards.yaml +10 -0
- package/docker/dev/grafana/provisioning/datasources/datasources.yaml +30 -0
- package/docker/dev/otel-collector-client/config.yaml +39 -0
- package/docker/dev/otel-collector-server/config.yaml +72 -0
- package/docker/dev/postgres/init-db.sh +6 -0
- package/docker/dev/rivet-engine/config.jsonc +48 -0
- package/docker/dev/vector-client/vector.yaml +31 -0
- package/docker/dev/vector-server/vector.yaml +61 -0
- package/docker/dev-host/.gitattributes +1 -0
- package/docker/dev-host/README.md +74 -0
- package/docker/dev-host/clickhouse/client-config.xml +5 -0
- package/docker/dev-host/clickhouse/config.xml +52 -0
- package/docker/dev-host/clickhouse/init/01-create-otel-table.sql +107 -0
- package/docker/dev-host/clickhouse/users.xml +35 -0
- package/docker/dev-host/docker-compose.yml +190 -0
- package/docker/dev-host/grafana/dashboards/api.json +1240 -0
- package/docker/dev-host/grafana/dashboards/cache.json +1075 -0
- package/docker/dev-host/grafana/dashboards/futures.json +230 -0
- package/docker/dev-host/grafana/dashboards/gasoline.json +2477 -0
- package/docker/dev-host/grafana/dashboards/guard.json +1274 -0
- package/docker/dev-host/grafana/dashboards/tokio.json +1005 -0
- package/docker/dev-host/grafana/dashboards/traces.json +957 -0
- package/docker/dev-host/grafana/grafana.ini +14 -0
- package/docker/dev-host/grafana/provisioning/dashboards/dashboards.yaml +10 -0
- package/docker/dev-host/grafana/provisioning/datasources/datasources.yaml +30 -0
- package/docker/dev-host/otel-collector-client/config.yaml +39 -0
- package/docker/dev-host/otel-collector-server/config.yaml +72 -0
- package/docker/dev-host/postgres/init-db.sh +6 -0
- package/docker/dev-host/rivet-engine/config.jsonc +48 -0
- package/docker/dev-host/vector-client/vector.yaml +31 -0
- package/docker/dev-host/vector-server/vector.yaml +61 -0
- package/docker/dev-multidc/.gitattributes +1 -0
- package/docker/dev-multidc/README.md +86 -0
- package/docker/dev-multidc/core/clickhouse/client-config.xml +5 -0
- package/docker/dev-multidc/core/clickhouse/config.xml +52 -0
- package/docker/dev-multidc/core/clickhouse/init/01-create-otel-table.sql +107 -0
- package/docker/dev-multidc/core/clickhouse/users.xml +35 -0
- package/docker/dev-multidc/core/grafana/dashboards/api.json +1240 -0
- package/docker/dev-multidc/core/grafana/dashboards/cache.json +1075 -0
- package/docker/dev-multidc/core/grafana/dashboards/futures.json +230 -0
- package/docker/dev-multidc/core/grafana/dashboards/gasoline.json +2477 -0
- package/docker/dev-multidc/core/grafana/dashboards/guard.json +1274 -0
- package/docker/dev-multidc/core/grafana/dashboards/tokio.json +1005 -0
- package/docker/dev-multidc/core/grafana/dashboards/traces.json +957 -0
- package/docker/dev-multidc/core/grafana/grafana.ini +14 -0
- package/docker/dev-multidc/core/grafana/provisioning/dashboards/dashboards.yaml +10 -0
- package/docker/dev-multidc/core/grafana/provisioning/datasources/datasources.yaml +30 -0
- package/docker/dev-multidc/datacenters/dc-a/otel-collector-client/config.yaml +39 -0
- package/docker/dev-multidc/datacenters/dc-a/otel-collector-server/config.yaml +72 -0
- package/docker/dev-multidc/datacenters/dc-a/postgres/init-db.sh +6 -0
- package/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc +62 -0
- package/docker/dev-multidc/datacenters/dc-a/vector-client/vector.yaml +31 -0
- package/docker/dev-multidc/datacenters/dc-a/vector-server/vector.yaml +61 -0
- package/docker/dev-multidc/datacenters/dc-b/otel-collector-client/config.yaml +39 -0
- package/docker/dev-multidc/datacenters/dc-b/otel-collector-server/config.yaml +72 -0
- package/docker/dev-multidc/datacenters/dc-b/postgres/init-db.sh +6 -0
- package/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc +62 -0
- package/docker/dev-multidc/datacenters/dc-b/vector-client/vector.yaml +31 -0
- package/docker/dev-multidc/datacenters/dc-b/vector-server/vector.yaml +61 -0
- package/docker/dev-multidc/datacenters/dc-c/otel-collector-client/config.yaml +39 -0
- package/docker/dev-multidc/datacenters/dc-c/otel-collector-server/config.yaml +72 -0
- package/docker/dev-multidc/datacenters/dc-c/postgres/init-db.sh +6 -0
- package/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc +62 -0
- package/docker/dev-multidc/datacenters/dc-c/vector-client/vector.yaml +31 -0
- package/docker/dev-multidc/datacenters/dc-c/vector-server/vector.yaml +61 -0
- package/docker/dev-multidc/docker-compose.yml +546 -0
- package/docker/dev-multidc-multinode/.gitattributes +1 -0
- package/docker/dev-multidc-multinode/README.md +86 -0
- package/docker/dev-multidc-multinode/core/clickhouse/client-config.xml +5 -0
- package/docker/dev-multidc-multinode/core/clickhouse/config.xml +52 -0
- package/docker/dev-multidc-multinode/core/clickhouse/init/01-create-otel-table.sql +107 -0
- package/docker/dev-multidc-multinode/core/clickhouse/users.xml +35 -0
- package/docker/dev-multidc-multinode/core/grafana/dashboards/api.json +1240 -0
- package/docker/dev-multidc-multinode/core/grafana/dashboards/cache.json +1075 -0
- package/docker/dev-multidc-multinode/core/grafana/dashboards/futures.json +230 -0
- package/docker/dev-multidc-multinode/core/grafana/dashboards/gasoline.json +2477 -0
- package/docker/dev-multidc-multinode/core/grafana/dashboards/guard.json +1274 -0
- package/docker/dev-multidc-multinode/core/grafana/dashboards/tokio.json +1005 -0
- package/docker/dev-multidc-multinode/core/grafana/dashboards/traces.json +957 -0
- package/docker/dev-multidc-multinode/core/grafana/grafana.ini +14 -0
- package/docker/dev-multidc-multinode/core/grafana/provisioning/dashboards/dashboards.yaml +10 -0
- package/docker/dev-multidc-multinode/core/grafana/provisioning/datasources/datasources.yaml +30 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/otel-collector-client/config.yaml +39 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/otel-collector-server/config.yaml +72 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/postgres/init-db.sh +6 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/vector-client/vector.yaml +31 -0
- package/docker/dev-multidc-multinode/datacenters/dc-a/vector-server/vector.yaml +61 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/otel-collector-client/config.yaml +39 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/otel-collector-server/config.yaml +72 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/postgres/init-db.sh +6 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/vector-client/vector.yaml +31 -0
- package/docker/dev-multidc-multinode/datacenters/dc-b/vector-server/vector.yaml +61 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/otel-collector-client/config.yaml +39 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/otel-collector-server/config.yaml +72 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/postgres/init-db.sh +6 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc +62 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/vector-client/vector.yaml +31 -0
- package/docker/dev-multidc-multinode/datacenters/dc-c/vector-server/vector.yaml +61 -0
- package/docker/dev-multidc-multinode/docker-compose.yml +888 -0
- package/docker/dev-multinode/.gitattributes +1 -0
- package/docker/dev-multinode/README.md +74 -0
- package/docker/dev-multinode/clickhouse/client-config.xml +5 -0
- package/docker/dev-multinode/clickhouse/config.xml +52 -0
- package/docker/dev-multinode/clickhouse/init/01-create-otel-table.sql +107 -0
- package/docker/dev-multinode/clickhouse/users.xml +35 -0
- package/docker/dev-multinode/docker-compose.yml +323 -0
- package/docker/dev-multinode/grafana/dashboards/api.json +1240 -0
- package/docker/dev-multinode/grafana/dashboards/cache.json +1075 -0
- package/docker/dev-multinode/grafana/dashboards/futures.json +230 -0
- package/docker/dev-multinode/grafana/dashboards/gasoline.json +2477 -0
- package/docker/dev-multinode/grafana/dashboards/guard.json +1274 -0
- package/docker/dev-multinode/grafana/dashboards/tokio.json +1005 -0
- package/docker/dev-multinode/grafana/dashboards/traces.json +957 -0
- package/docker/dev-multinode/grafana/grafana.ini +14 -0
- package/docker/dev-multinode/grafana/provisioning/dashboards/dashboards.yaml +10 -0
- package/docker/dev-multinode/grafana/provisioning/datasources/datasources.yaml +30 -0
- package/docker/dev-multinode/otel-collector-client/config.yaml +39 -0
- package/docker/dev-multinode/otel-collector-server/config.yaml +72 -0
- package/docker/dev-multinode/postgres/init-db.sh +6 -0
- package/docker/dev-multinode/rivet-engine/0/config.jsonc +48 -0
- package/docker/dev-multinode/rivet-engine/1/config.jsonc +48 -0
- package/docker/dev-multinode/rivet-engine/2/config.jsonc +48 -0
- package/docker/dev-multinode/vector-client/vector.yaml +31 -0
- package/docker/dev-multinode/vector-server/vector.yaml +61 -0
- package/docker/engine/build.sh +67 -0
- package/docker/engine/linux-aarch64.Dockerfile +97 -0
- package/docker/engine/linux-x86_64.Dockerfile +93 -0
- package/docker/engine/macos-aarch64.Dockerfile +92 -0
- package/docker/engine/macos-x86_64.Dockerfile +92 -0
- package/docker/engine/windows.Dockerfile +80 -0
- package/docker/prod-file-system/.gitattributes +1 -0
- package/docker/prod-file-system/README.md +76 -0
- package/docker/prod-file-system/docker-compose.yml +41 -0
- package/docker/prod-file-system/rivet-engine/config.jsonc +2 -0
- package/docker/template/README.md +20 -0
- package/docker/template/grafana-dashboards/api.json +1240 -0
- package/docker/template/grafana-dashboards/cache.json +1075 -0
- package/docker/template/grafana-dashboards/futures.json +230 -0
- package/docker/template/grafana-dashboards/gasoline.json +2477 -0
- package/docker/template/grafana-dashboards/guard.json +1274 -0
- package/docker/template/grafana-dashboards/tokio.json +1005 -0
- package/docker/template/grafana-dashboards/traces.json +957 -0
- package/docker/template/node_modules/.bin/js-yaml +21 -0
- package/docker/template/node_modules/.bin/tsc +21 -0
- package/docker/template/node_modules/.bin/tsserver +21 -0
- package/docker/template/node_modules/.bin/tsx +21 -0
- package/docker/template/package.json +23 -0
- package/docker/template/src/config.ts +104 -0
- package/docker/template/src/context.ts +216 -0
- package/docker/template/src/docker-compose.ts +368 -0
- package/docker/template/src/git.ts +8 -0
- package/docker/template/src/main.ts +65 -0
- package/docker/template/src/readme.ts +98 -0
- package/docker/template/src/services/core/clickhouse.ts +223 -0
- package/docker/template/src/services/core/grafana.ts +115 -0
- package/docker/template/src/services/edge/otel-collector-client.ts +64 -0
- package/docker/template/src/services/edge/otel-collector-server.ts +107 -0
- package/docker/template/src/services/edge/postgres.ts +23 -0
- package/docker/template/src/services/edge/rivet-engine.ts +87 -0
- package/docker/template/src/services/edge/runner.ts +7 -0
- package/docker/template/src/services/edge/vector-client.ts +55 -0
- package/docker/template/src/services/edge/vector-server.ts +111 -0
- package/docker/template/src/utils.ts +19 -0
- package/docker/template/tsconfig.json +18 -0
- package/docker/universal/Dockerfile +133 -0
- package/package.json +10 -0
- package/packages/actor-kv/Cargo.toml +31 -0
- package/packages/actor-kv/src/entry.rs +147 -0
- package/packages/actor-kv/src/key.rs +81 -0
- package/packages/actor-kv/src/lib.rs +357 -0
- package/packages/actor-kv/src/utils.rs +101 -0
- package/packages/actor-kv/tests/kv_operations.rs +294 -0
- package/packages/actor-kv/tests/list_edge_cases.rs +370 -0
- package/packages/api-builder/Cargo.toml +36 -0
- package/packages/api-builder/src/context.rs +98 -0
- package/packages/api-builder/src/error_response.rs +116 -0
- package/packages/api-builder/src/errors.rs +29 -0
- package/packages/api-builder/src/extract.rs +137 -0
- package/packages/api-builder/src/global_context.rs +31 -0
- package/packages/api-builder/src/lib.rs +19 -0
- package/packages/api-builder/src/metrics.rs +29 -0
- package/packages/api-builder/src/middleware.rs +232 -0
- package/packages/api-builder/src/prelude.rs +18 -0
- package/packages/api-builder/src/request_ids.rs +17 -0
- package/packages/api-builder/src/router.rs +89 -0
- package/packages/api-builder/src/wrappers.rs +138 -0
- package/packages/api-builder/tests/basic.rs +215 -0
- package/packages/api-builder/tests/errors.rs +104 -0
- package/packages/api-peer/Cargo.toml +34 -0
- package/packages/api-peer/src/actors/create.rs +40 -0
- package/packages/api-peer/src/actors/delete.rs +87 -0
- package/packages/api-peer/src/actors/kv_get.rs +67 -0
- package/packages/api-peer/src/actors/list.rs +98 -0
- package/packages/api-peer/src/actors/list_names.rs +56 -0
- package/packages/api-peer/src/actors/mod.rs +5 -0
- package/packages/api-peer/src/internal.rs +186 -0
- package/packages/api-peer/src/lib.rs +28 -0
- package/packages/api-peer/src/namespaces.rs +122 -0
- package/packages/api-peer/src/router.rs +51 -0
- package/packages/api-peer/src/runner_configs.rs +160 -0
- package/packages/api-peer/src/runners.rs +109 -0
- package/packages/api-public/Cargo.toml +38 -0
- package/packages/api-public/build.rs +45 -0
- package/packages/api-public/src/actors/create.rs +99 -0
- package/packages/api-public/src/actors/delete.rs +86 -0
- package/packages/api-public/src/actors/get_or_create.rs +170 -0
- package/packages/api-public/src/actors/kv_get.rs +79 -0
- package/packages/api-public/src/actors/list.rs +241 -0
- package/packages/api-public/src/actors/list_names.rs +76 -0
- package/packages/api-public/src/actors/mod.rs +7 -0
- package/packages/api-public/src/actors/utils.rs +216 -0
- package/packages/api-public/src/ctx.rs +70 -0
- package/packages/api-public/src/datacenters.rs +43 -0
- package/packages/api-public/src/errors.rs +30 -0
- package/packages/api-public/src/health.rs +166 -0
- package/packages/api-public/src/lib.rs +13 -0
- package/packages/api-public/src/metadata.rs +24 -0
- package/packages/api-public/src/namespaces.rs +89 -0
- package/packages/api-public/src/router.rs +182 -0
- package/packages/api-public/src/runner_configs/delete.rs +99 -0
- package/packages/api-public/src/runner_configs/list.rs +98 -0
- package/packages/api-public/src/runner_configs/mod.rs +12 -0
- package/packages/api-public/src/runner_configs/refresh_metadata.rs +116 -0
- package/packages/api-public/src/runner_configs/serverless_health_check.rs +81 -0
- package/packages/api-public/src/runner_configs/upsert.rs +194 -0
- package/packages/api-public/src/runner_configs/utils.rs +217 -0
- package/packages/api-public/src/runners.rs +144 -0
- package/packages/api-public/src/ui.rs +44 -0
- package/packages/api-types/Cargo.toml +17 -0
- package/packages/api-types/src/actors/create.rs +29 -0
- package/packages/api-types/src/actors/list.rs +23 -0
- package/packages/api-types/src/actors/list_names.rs +24 -0
- package/packages/api-types/src/actors/mod.rs +3 -0
- package/packages/api-types/src/datacenters/list.rs +12 -0
- package/packages/api-types/src/datacenters/mod.rs +1 -0
- package/packages/api-types/src/lib.rs +6 -0
- package/packages/api-types/src/namespaces/list.rs +21 -0
- package/packages/api-types/src/namespaces/mod.rs +2 -0
- package/packages/api-types/src/namespaces/runner_configs.rs +55 -0
- package/packages/api-types/src/pagination.rs +8 -0
- package/packages/api-types/src/runner_configs/list.rs +29 -0
- package/packages/api-types/src/runner_configs/mod.rs +1 -0
- package/packages/api-types/src/runners/list.rs +25 -0
- package/packages/api-types/src/runners/mod.rs +1 -0
- package/packages/api-util/Cargo.toml +22 -0
- package/packages/api-util/src/errors.rs +9 -0
- package/packages/api-util/src/lib.rs +209 -0
- package/packages/bootstrap/Cargo.toml +19 -0
- package/packages/bootstrap/src/lib.rs +102 -0
- package/packages/cache/Cargo.toml +28 -0
- package/packages/cache/src/driver.rs +346 -0
- package/packages/cache/src/errors.rs +23 -0
- package/packages/cache/src/getter_ctx.rs +138 -0
- package/packages/cache/src/inner.rs +60 -0
- package/packages/cache/src/key.rs +101 -0
- package/packages/cache/src/lib.rs +19 -0
- package/packages/cache/src/metrics.rs +34 -0
- package/packages/cache/src/purge.rs +13 -0
- package/packages/cache/src/rate_limit.rs +109 -0
- package/packages/cache/src/req_config.rs +443 -0
- package/packages/cache/tests/integration.rs +582 -0
- package/packages/cache-purge/Cargo.toml +17 -0
- package/packages/cache-purge/src/lib.rs +44 -0
- package/packages/cache-result/Cargo.toml +9 -0
- package/packages/cache-result/src/lib.rs +61 -0
- package/packages/clickhouse-inserter/Cargo.toml +17 -0
- package/packages/clickhouse-inserter/src/error.rs +16 -0
- package/packages/clickhouse-inserter/src/lib.rs +179 -0
- package/packages/clickhouse-user-query/Cargo.toml +16 -0
- package/packages/clickhouse-user-query/examples/case_sensitivity_demo.rs +100 -0
- package/packages/clickhouse-user-query/examples/group_by_example.rs +53 -0
- package/packages/clickhouse-user-query/examples/string_contains_demo.rs +96 -0
- package/packages/clickhouse-user-query/src/builder.rs +445 -0
- package/packages/clickhouse-user-query/src/error.rs +37 -0
- package/packages/clickhouse-user-query/src/lib.rs +61 -0
- package/packages/clickhouse-user-query/src/query.rs +143 -0
- package/packages/clickhouse-user-query/src/schema.rs +78 -0
- package/packages/clickhouse-user-query/tests/builder_tests.rs +619 -0
- package/packages/clickhouse-user-query/tests/case_sensitivity_tests.rs +307 -0
- package/packages/clickhouse-user-query/tests/integration_tests.rs +540 -0
- package/packages/clickhouse-user-query/tests/query_tests.rs +263 -0
- package/packages/clickhouse-user-query/tests/schema_tests.rs +44 -0
- package/packages/config/Cargo.toml +20 -0
- package/packages/config/src/config/api_peer.rs +21 -0
- package/packages/config/src/config/api_public.rs +25 -0
- package/packages/config/src/config/auth.rs +10 -0
- package/packages/config/src/config/cache.rs +24 -0
- package/packages/config/src/config/clickhouse.rs +49 -0
- package/packages/config/src/config/db.rs +52 -0
- package/packages/config/src/config/guard.rs +42 -0
- package/packages/config/src/config/logs.rs +10 -0
- package/packages/config/src/config/mod.rs +240 -0
- package/packages/config/src/config/pegboard.rs +94 -0
- package/packages/config/src/config/pubsub.rs +90 -0
- package/packages/config/src/config/runtime.rs +31 -0
- package/packages/config/src/config/telemetry.rs +14 -0
- package/packages/config/src/config/topology.rs +123 -0
- package/packages/config/src/config/vector.rs +18 -0
- package/packages/config/src/defaults.rs +11 -0
- package/packages/config/src/lib.rs +135 -0
- package/packages/config/src/paths.rs +25 -0
- package/packages/config/src/secret.rs +72 -0
- package/packages/dump-openapi/Cargo.toml +11 -0
- package/packages/dump-openapi/build.rs +26 -0
- package/packages/dump-openapi/src/lib.rs +1 -0
- package/packages/engine/Cargo.toml +74 -0
- package/packages/engine/src/commands/config.rs +18 -0
- package/packages/engine/src/commands/db/mod.rs +80 -0
- package/packages/engine/src/commands/mod.rs +7 -0
- package/packages/engine/src/commands/start.rs +143 -0
- package/packages/engine/src/commands/tracing.rs +86 -0
- package/packages/engine/src/commands/udb/cli.rs +562 -0
- package/packages/engine/src/commands/udb/mod.rs +132 -0
- package/packages/engine/src/commands/udb_keys.rs +200 -0
- package/packages/engine/src/commands/wf/mod.rs +125 -0
- package/packages/engine/src/commands/wf/signal.rs +80 -0
- package/packages/engine/src/keys.rs +47 -0
- package/packages/engine/src/lib.rs +55 -0
- package/packages/engine/src/main.rs +60 -0
- package/packages/engine/src/run_config.rs +53 -0
- package/packages/engine/src/util/db.rs +99 -0
- package/packages/engine/src/util/format.rs +69 -0
- package/packages/engine/src/util/mod.rs +13 -0
- package/packages/engine/src/util/udb.rs +687 -0
- package/packages/engine/src/util/wf/mod.rs +649 -0
- package/packages/engine/src/util/wf/signal.rs +126 -0
- package/packages/engine/tests/actors_create.rs +524 -0
- package/packages/engine/tests/actors_delete.rs +243 -0
- package/packages/engine/tests/actors_general.rs +191 -0
- package/packages/engine/tests/actors_get.rs +230 -0
- package/packages/engine/tests/actors_get_by_id.rs +170 -0
- package/packages/engine/tests/actors_get_or_create.rs +294 -0
- package/packages/engine/tests/actors_get_or_create_by_id.rs +147 -0
- package/packages/engine/tests/actors_lifecycle.rs +165 -0
- package/packages/engine/tests/actors_list.rs +798 -0
- package/packages/engine/tests/actors_list_names.rs +353 -0
- package/packages/engine/tests/common/actors.rs +554 -0
- package/packages/engine/tests/common/ctx.rs +201 -0
- package/packages/engine/tests/common/mod.rs +30 -0
- package/packages/engine/tests/common/ns.rs +36 -0
- package/packages/engine/tests/common/runner.rs +134 -0
- package/packages/engine/tests/common/test_helpers.rs +226 -0
- package/packages/engine/tests/runners_dupe_key.rs +27 -0
- package/packages/engine/tests/runners_version.rs +50 -0
- package/packages/env/Cargo.toml +14 -0
- package/packages/env/build.rs +8 -0
- package/packages/env/src/lib.rs +30 -0
- package/packages/epoxy/Cargo.toml +45 -0
- package/packages/epoxy/README.md +158 -0
- package/packages/epoxy/spec/KEYS.md +33 -0
- package/packages/epoxy/spec/PROPOSAL.md +125 -0
- package/packages/epoxy/spec/RECONFIGURE.md +40 -0
- package/packages/epoxy/src/consts.rs +42 -0
- package/packages/epoxy/src/errors.rs +21 -0
- package/packages/epoxy/src/http_client.rs +192 -0
- package/packages/epoxy/src/http_routes.rs +34 -0
- package/packages/epoxy/src/keys/keys.rs +99 -0
- package/packages/epoxy/src/keys/mod.rs +9 -0
- package/packages/epoxy/src/keys/replica.rs +283 -0
- package/packages/epoxy/src/lib.rs +25 -0
- package/packages/epoxy/src/ops/explicit_prepare.rs +342 -0
- package/packages/epoxy/src/ops/kv/get_local.rs +44 -0
- package/packages/epoxy/src/ops/kv/get_optimistic.rs +150 -0
- package/packages/epoxy/src/ops/kv/mod.rs +3 -0
- package/packages/epoxy/src/ops/kv/purge_local.rs +28 -0
- package/packages/epoxy/src/ops/mod.rs +4 -0
- package/packages/epoxy/src/ops/propose.rs +352 -0
- package/packages/epoxy/src/ops/read_cluster_config.rs +24 -0
- package/packages/epoxy/src/replica/ballot.rs +130 -0
- package/packages/epoxy/src/replica/commit_kv.rs +80 -0
- package/packages/epoxy/src/replica/decide_path.rs +51 -0
- package/packages/epoxy/src/replica/lead_consensus.rs +65 -0
- package/packages/epoxy/src/replica/log.rs +84 -0
- package/packages/epoxy/src/replica/message_request.rs +166 -0
- package/packages/epoxy/src/replica/messages/accept.rs +50 -0
- package/packages/epoxy/src/replica/messages/accepted.rs +35 -0
- package/packages/epoxy/src/replica/messages/commit.rs +46 -0
- package/packages/epoxy/src/replica/messages/committed.rs +41 -0
- package/packages/epoxy/src/replica/messages/download_instances.rs +69 -0
- package/packages/epoxy/src/replica/messages/mod.rs +15 -0
- package/packages/epoxy/src/replica/messages/pre_accept.rs +69 -0
- package/packages/epoxy/src/replica/messages/prepare.rs +89 -0
- package/packages/epoxy/src/replica/mod.rs +11 -0
- package/packages/epoxy/src/replica/update_config.rs +24 -0
- package/packages/epoxy/src/replica/utils.rs +111 -0
- package/packages/epoxy/src/types.rs +117 -0
- package/packages/epoxy/src/utils.rs +65 -0
- package/packages/epoxy/src/workflows/coordinator/mod.rs +121 -0
- package/packages/epoxy/src/workflows/coordinator/reconfigure.rs +291 -0
- package/packages/epoxy/src/workflows/coordinator/replica_status_change.rs +193 -0
- package/packages/epoxy/src/workflows/mod.rs +3 -0
- package/packages/epoxy/src/workflows/purger.rs +81 -0
- package/packages/epoxy/src/workflows/replica/mod.rs +39 -0
- package/packages/epoxy/src/workflows/replica/setup.rs +823 -0
- package/packages/epoxy/tests/common/api.rs +25 -0
- package/packages/epoxy/tests/common/mod.rs +301 -0
- package/packages/epoxy/tests/common/utils.rs +23 -0
- package/packages/epoxy/tests/kv.rs +187 -0
- package/packages/epoxy/tests/kv_get_optimistic.rs +179 -0
- package/packages/epoxy/tests/proposal.rs +38 -0
- package/packages/epoxy/tests/reconfigure.rs +618 -0
- package/packages/error/Cargo.toml +16 -0
- package/packages/error/src/error.rs +90 -0
- package/packages/error/src/lib.rs +13 -0
- package/packages/error/src/schema.rs +86 -0
- package/packages/error/tests/basic.rs +338 -0
- package/packages/error-macros/Cargo.toml +19 -0
- package/packages/error-macros/src/lib.rs +632 -0
- package/packages/gasoline/Cargo.toml +55 -0
- package/packages/gasoline/src/activity.rs +24 -0
- package/packages/gasoline/src/builder/common/message.rs +104 -0
- package/packages/gasoline/src/builder/common/mod.rs +5 -0
- package/packages/gasoline/src/builder/common/signal.rs +193 -0
- package/packages/gasoline/src/builder/common/workflow.rs +196 -0
- package/packages/gasoline/src/builder/mod.rs +60 -0
- package/packages/gasoline/src/builder/workflow/message.rs +147 -0
- package/packages/gasoline/src/builder/workflow/mod.rs +5 -0
- package/packages/gasoline/src/builder/workflow/signal.rs +227 -0
- package/packages/gasoline/src/builder/workflow/sub_workflow.rs +318 -0
- package/packages/gasoline/src/ctx/activity.rs +192 -0
- package/packages/gasoline/src/ctx/common.rs +153 -0
- package/packages/gasoline/src/ctx/listen.rs +121 -0
- package/packages/gasoline/src/ctx/message.rs +346 -0
- package/packages/gasoline/src/ctx/mod.rs +18 -0
- package/packages/gasoline/src/ctx/operation.rs +191 -0
- package/packages/gasoline/src/ctx/standalone.rs +228 -0
- package/packages/gasoline/src/ctx/test.rs +251 -0
- package/packages/gasoline/src/ctx/versioned_workflow.rs +198 -0
- package/packages/gasoline/src/ctx/workflow.rs +1459 -0
- package/packages/gasoline/src/db/debug.rs +199 -0
- package/packages/gasoline/src/db/kv/debug.rs +1493 -0
- package/packages/gasoline/src/db/kv/keys/history.rs +1780 -0
- package/packages/gasoline/src/db/kv/keys/metric.rs +170 -0
- package/packages/gasoline/src/db/kv/keys/mod.rs +6 -0
- package/packages/gasoline/src/db/kv/keys/signal.rs +401 -0
- package/packages/gasoline/src/db/kv/keys/wake.rs +310 -0
- package/packages/gasoline/src/db/kv/keys/worker.rs +185 -0
- package/packages/gasoline/src/db/kv/keys/workflow.rs +1175 -0
- package/packages/gasoline/src/db/kv/mod.rs +3044 -0
- package/packages/gasoline/src/db/kv/subjects.rs +13 -0
- package/packages/gasoline/src/db/kv/system.rs +33 -0
- package/packages/gasoline/src/db/mod.rs +344 -0
- package/packages/gasoline/src/error.rs +258 -0
- package/packages/gasoline/src/executable.rs +186 -0
- package/packages/gasoline/src/history/cursor.rs +779 -0
- package/packages/gasoline/src/history/event.rs +210 -0
- package/packages/gasoline/src/history/location.rs +185 -0
- package/packages/gasoline/src/history/mod.rs +8 -0
- package/packages/gasoline/src/history/removed.rs +94 -0
- package/packages/gasoline/src/lib.rs +18 -0
- package/packages/gasoline/src/listen.rs +24 -0
- package/packages/gasoline/src/message.rs +103 -0
- package/packages/gasoline/src/metrics.rs +156 -0
- package/packages/gasoline/src/operation.rs +21 -0
- package/packages/gasoline/src/prelude.rs +53 -0
- package/packages/gasoline/src/registry.rs +111 -0
- package/packages/gasoline/src/signal.rs +117 -0
- package/packages/gasoline/src/stub.rs +118 -0
- package/packages/gasoline/src/utils/mod.rs +20 -0
- package/packages/gasoline/src/utils/tags.rs +82 -0
- package/packages/gasoline/src/utils/time.rs +85 -0
- package/packages/gasoline/src/worker.rs +336 -0
- package/packages/gasoline/src/workflow.rs +64 -0
- package/packages/gasoline/tests/activity_ctx.rs +83 -0
- package/packages/gasoline/tests/workflow_ctx.rs +288 -0
- package/packages/gasoline/tests/workflows/activity_test.rs +33 -0
- package/packages/gasoline/tests/workflows/basic.rs +13 -0
- package/packages/gasoline/tests/workflows/eviction_test.rs +45 -0
- package/packages/gasoline/tests/workflows/listen_timeout.rs +27 -0
- package/packages/gasoline/tests/workflows/loop_test.rs +30 -0
- package/packages/gasoline/tests/workflows/mod.rs +11 -0
- package/packages/gasoline/tests/workflows/properties_test.rs +56 -0
- package/packages/gasoline/tests/workflows/signal_test.rs +24 -0
- package/packages/gasoline/tests/workflows/sleep_test.rs +15 -0
- package/packages/gasoline/tests/workflows/state_test.rs +69 -0
- package/packages/gasoline/tests/workflows/sub_test.rs +21 -0
- package/packages/gasoline/tests/workflows/tags_test.rs +40 -0
- package/packages/gasoline-macros/Cargo.toml +14 -0
- package/packages/gasoline-macros/src/lib.rs +527 -0
- package/packages/guard/Cargo.toml +56 -0
- package/packages/guard/src/cache/actor.rs +43 -0
- package/packages/guard/src/cache/mod.rs +69 -0
- package/packages/guard/src/errors.rs +62 -0
- package/packages/guard/src/lib.rs +58 -0
- package/packages/guard/src/middleware.rs +42 -0
- package/packages/guard/src/routing/api_public.rs +70 -0
- package/packages/guard/src/routing/mod.rs +245 -0
- package/packages/guard/src/routing/pegboard_gateway.rs +260 -0
- package/packages/guard/src/routing/runner.rs +129 -0
- package/packages/guard/src/shared_state.rs +31 -0
- package/packages/guard/src/tls.rs +224 -0
- package/packages/guard/tests/parse_actor_path.rs +240 -0
- package/packages/guard-core/Cargo.toml +58 -0
- package/packages/guard-core/src/analytics.rs +46 -0
- package/packages/guard-core/src/cert_resolver.rs +61 -0
- package/packages/guard-core/src/custom_serve.rs +52 -0
- package/packages/guard-core/src/errors.rs +113 -0
- package/packages/guard-core/src/lib.rs +25 -0
- package/packages/guard-core/src/metrics.rs +64 -0
- package/packages/guard-core/src/proxy_service.rs +2699 -0
- package/packages/guard-core/src/request_context.rs +184 -0
- package/packages/guard-core/src/server.rs +289 -0
- package/packages/guard-core/src/task_group.rs +57 -0
- package/packages/guard-core/src/types.rs +19 -0
- package/packages/guard-core/src/websocket_handle.rs +47 -0
- package/packages/guard-core/tests/common/mod.rs +678 -0
- package/packages/guard-core/tests/custom_serve.rs +392 -0
- package/packages/guard-core/tests/fixtures/tls/README.md +6 -0
- package/packages/guard-core/tests/fixtures/tls/api_cert.pem +51 -0
- package/packages/guard-core/tests/fixtures/tls/api_key.pem +7 -0
- package/packages/guard-core/tests/fixtures/tls/job_cert.pem +55 -0
- package/packages/guard-core/tests/fixtures/tls/job_key.pem +7 -0
- package/packages/guard-core/tests/https.rs +400 -0
- package/packages/guard-core/tests/metrics.rs +247 -0
- package/packages/guard-core/tests/proxy.rs +842 -0
- package/packages/guard-core/tests/simple_websocket.rs +258 -0
- package/packages/guard-core/tests/simple_websocket_echo.rs +318 -0
- package/packages/guard-core/tests/simple_websocket_test2.rs +120 -0
- package/packages/guard-core/tests/streaming_response.rs +265 -0
- package/packages/guard-core/tests/websocket.rs +1113 -0
- package/packages/internal/Cargo.toml +13 -0
- package/packages/internal/README.md +1 -0
- package/packages/internal/src/lib.rs +1 -0
- package/packages/internal/src/ops/bump_serverless_autoscaler_global.rs +64 -0
- package/packages/internal/src/ops/cache/mod.rs +1 -0
- package/packages/internal/src/ops/cache/purge_global.rs +81 -0
- package/packages/internal/src/ops/mod.rs +2 -0
- package/packages/logs/Cargo.toml +20 -0
- package/packages/logs/src/lib.rs +9 -0
- package/packages/logs/src/unix.rs +201 -0
- package/packages/logs/src/windows.rs +240 -0
- package/packages/metrics/Cargo.toml +20 -0
- package/packages/metrics/src/buckets.rs +32 -0
- package/packages/metrics/src/lib.rs +8 -0
- package/packages/metrics/src/providers.rs +183 -0
- package/packages/namespace/Cargo.toml +28 -0
- package/packages/namespace/src/errors.rs +39 -0
- package/packages/namespace/src/keys/mod.rs +190 -0
- package/packages/namespace/src/keys/runner_config.rs +211 -0
- package/packages/namespace/src/lib.rs +16 -0
- package/packages/namespace/src/ops/get_global.rs +58 -0
- package/packages/namespace/src/ops/get_local.rs +69 -0
- package/packages/namespace/src/ops/list.rs +69 -0
- package/packages/namespace/src/ops/mod.rs +6 -0
- package/packages/namespace/src/ops/resolve_for_name_global.rs +57 -0
- package/packages/namespace/src/ops/resolve_for_name_local.rs +41 -0
- package/packages/namespace/src/ops/runner_config/delete.rs +53 -0
- package/packages/namespace/src/ops/runner_config/get.rs +94 -0
- package/packages/namespace/src/ops/runner_config/list.rs +94 -0
- package/packages/namespace/src/ops/runner_config/mod.rs +4 -0
- package/packages/namespace/src/ops/runner_config/upsert.rs +148 -0
- package/packages/namespace/src/utils.rs +11 -0
- package/packages/namespace/src/workflows/mod.rs +1 -0
- package/packages/namespace/src/workflows/namespace.rs +178 -0
- package/packages/pegboard/Cargo.toml +34 -0
- package/packages/pegboard/src/errors.rs +76 -0
- package/packages/pegboard/src/keys/actor.rs +443 -0
- package/packages/pegboard/src/keys/epoxy/mod.rs +1 -0
- package/packages/pegboard/src/keys/epoxy/ns.rs +68 -0
- package/packages/pegboard/src/keys/hibernating_request.rs +72 -0
- package/packages/pegboard/src/keys/mod.rs +15 -0
- package/packages/pegboard/src/keys/ns.rs +1367 -0
- package/packages/pegboard/src/keys/runner.rs +818 -0
- package/packages/pegboard/src/lib.rs +19 -0
- package/packages/pegboard/src/metrics.rs +19 -0
- package/packages/pegboard/src/ops/actor/create.rs +159 -0
- package/packages/pegboard/src/ops/actor/get.rs +100 -0
- package/packages/pegboard/src/ops/actor/get_for_gateway.rs +70 -0
- package/packages/pegboard/src/ops/actor/get_for_key.rs +93 -0
- package/packages/pegboard/src/ops/actor/get_reservation_for_key.rs +46 -0
- package/packages/pegboard/src/ops/actor/get_runner.rs +64 -0
- package/packages/pegboard/src/ops/actor/hibernating_request/delete.rs +41 -0
- package/packages/pegboard/src/ops/actor/hibernating_request/list.rs +65 -0
- package/packages/pegboard/src/ops/actor/hibernating_request/mod.rs +3 -0
- package/packages/pegboard/src/ops/actor/hibernating_request/upsert.rs +51 -0
- package/packages/pegboard/src/ops/actor/list_for_ns.rs +207 -0
- package/packages/pegboard/src/ops/actor/list_names.rs +62 -0
- package/packages/pegboard/src/ops/actor/mod.rs +9 -0
- package/packages/pegboard/src/ops/mod.rs +2 -0
- package/packages/pegboard/src/ops/runner/find_dc_with_runner.rs +222 -0
- package/packages/pegboard/src/ops/runner/get.rs +143 -0
- package/packages/pegboard/src/ops/runner/get_by_key.rs +51 -0
- package/packages/pegboard/src/ops/runner/list_for_ns.rs +209 -0
- package/packages/pegboard/src/ops/runner/list_names.rs +60 -0
- package/packages/pegboard/src/ops/runner/mod.rs +6 -0
- package/packages/pegboard/src/ops/runner/update_alloc_idx.rs +208 -0
- package/packages/pegboard/src/pubsub_subjects.rs +80 -0
- package/packages/pegboard/src/utils.rs +29 -0
- package/packages/pegboard/src/workflows/actor/destroy.rs +264 -0
- package/packages/pegboard/src/workflows/actor/keys.rs +283 -0
- package/packages/pegboard/src/workflows/actor/mod.rs +804 -0
- package/packages/pegboard/src/workflows/actor/runtime.rs +909 -0
- package/packages/pegboard/src/workflows/actor/setup.rs +175 -0
- package/packages/pegboard/src/workflows/mod.rs +2 -0
- package/packages/pegboard/src/workflows/runner.rs +1182 -0
- package/packages/pegboard-gateway/Cargo.toml +35 -0
- package/packages/pegboard-gateway/src/keepalive_task.rs +61 -0
- package/packages/pegboard-gateway/src/lib.rs +698 -0
- package/packages/pegboard-gateway/src/metrics.rs +14 -0
- package/packages/pegboard-gateway/src/ping_task.rs +23 -0
- package/packages/pegboard-gateway/src/shared_state.rs +588 -0
- package/packages/pegboard-gateway/src/tunnel_to_ws_task.rs +85 -0
- package/packages/pegboard-gateway/src/ws_to_tunnel_task.rs +65 -0
- package/packages/pegboard-runner/Cargo.toml +38 -0
- package/packages/pegboard-runner/src/conn.rs +183 -0
- package/packages/pegboard-runner/src/errors.rs +33 -0
- package/packages/pegboard-runner/src/lib.rs +249 -0
- package/packages/pegboard-runner/src/ping_task.rs +66 -0
- package/packages/pegboard-runner/src/tunnel_to_ws_task.rs +137 -0
- package/packages/pegboard-runner/src/utils.rs +40 -0
- package/packages/pegboard-runner/src/ws_to_tunnel_task.rs +443 -0
- package/packages/pegboard-serverless/Cargo.toml +25 -0
- package/packages/pegboard-serverless/src/lib.rs +523 -0
- package/packages/pools/Cargo.toml +38 -0
- package/packages/pools/src/db/clickhouse.rs +37 -0
- package/packages/pools/src/db/mod.rs +3 -0
- package/packages/pools/src/db/udb.rs +37 -0
- package/packages/pools/src/db/ups.rs +91 -0
- package/packages/pools/src/error.rs +41 -0
- package/packages/pools/src/lib.rs +16 -0
- package/packages/pools/src/metrics.rs +32 -0
- package/packages/pools/src/pools.rs +114 -0
- package/packages/pools/src/prelude.rs +3 -0
- package/packages/pools/src/reqwest.rs +25 -0
- package/packages/runtime/Cargo.lock +1394 -0
- package/packages/runtime/Cargo.toml +29 -0
- package/packages/runtime/src/lib.rs +154 -0
- package/packages/runtime/src/metrics.rs +34 -0
- package/packages/runtime/src/term_signal.rs +113 -0
- package/packages/runtime/src/traces.rs +158 -0
- package/packages/service-manager/Cargo.toml +19 -0
- package/packages/service-manager/src/lib.rs +359 -0
- package/packages/telemetry/Cargo.toml +13 -0
- package/packages/telemetry/README.md +12 -0
- package/packages/telemetry/src/lib.rs +39 -0
- package/packages/test-deps/Cargo.toml +19 -0
- package/packages/test-deps/src/datacenter.rs +109 -0
- package/packages/test-deps/src/lib.rs +131 -0
- package/packages/test-deps-docker/Cargo.toml +14 -0
- package/packages/test-deps-docker/src/database.rs +135 -0
- package/packages/test-deps-docker/src/lib.rs +280 -0
- package/packages/test-deps-docker/src/pubsub.rs +76 -0
- package/packages/tracing-reconfigure/Cargo.toml +18 -0
- package/packages/tracing-reconfigure/src/lib.rs +78 -0
- package/packages/tracing-utils/Cargo.toml +12 -0
- package/packages/tracing-utils/src/lib.rs +91 -0
- package/packages/types/Cargo.toml +19 -0
- package/packages/types/README.md +3 -0
- package/packages/types/src/actors.rs +79 -0
- package/packages/types/src/datacenters.rs +10 -0
- package/packages/types/src/keys/mod.rs +2 -0
- package/packages/types/src/keys/namespace/mod.rs +1 -0
- package/packages/types/src/keys/namespace/runner_config.rs +28 -0
- package/packages/types/src/keys/pegboard/mod.rs +7 -0
- package/packages/types/src/keys/pegboard/ns.rs +109 -0
- package/packages/types/src/lib.rs +7 -0
- package/packages/types/src/msgs/mod.rs +1 -0
- package/packages/types/src/msgs/pegboard.rs +5 -0
- package/packages/types/src/namespaces.rs +10 -0
- package/packages/types/src/runner_configs.rs +96 -0
- package/packages/types/src/runners.rs +24 -0
- package/packages/universaldb/Cargo.toml +32 -0
- package/packages/universaldb/src/atomic.rs +190 -0
- package/packages/universaldb/src/database.rs +56 -0
- package/packages/universaldb/src/driver/mod.rs +87 -0
- package/packages/universaldb/src/driver/postgres/database.rs +244 -0
- package/packages/universaldb/src/driver/postgres/mod.rs +5 -0
- package/packages/universaldb/src/driver/postgres/transaction.rs +337 -0
- package/packages/universaldb/src/driver/postgres/transaction_task.rs +538 -0
- package/packages/universaldb/src/driver/rocksdb/database.rs +129 -0
- package/packages/universaldb/src/driver/rocksdb/mod.rs +6 -0
- package/packages/universaldb/src/driver/rocksdb/transaction.rs +354 -0
- package/packages/universaldb/src/driver/rocksdb/transaction_conflict_tracker.rs +109 -0
- package/packages/universaldb/src/driver/rocksdb/transaction_task.rs +526 -0
- package/packages/universaldb/src/error.rs +30 -0
- package/packages/universaldb/src/key_selector.rs +97 -0
- package/packages/universaldb/src/lib.rs +24 -0
- package/packages/universaldb/src/metrics.rs +27 -0
- package/packages/universaldb/src/options.rs +284 -0
- package/packages/universaldb/src/prelude.rs +8 -0
- package/packages/universaldb/src/range_option.rs +159 -0
- package/packages/universaldb/src/transaction.rs +378 -0
- package/packages/universaldb/src/tx_ops.rs +425 -0
- package/packages/universaldb/src/utils/cherry_pick.rs +88 -0
- package/packages/universaldb/src/utils/codes.rs +9 -0
- package/packages/universaldb/src/utils/ext.rs +58 -0
- package/packages/universaldb/src/utils/formal_key.rs +23 -0
- package/packages/universaldb/src/utils/keys.rs +134 -0
- package/packages/universaldb/src/utils/mod.rs +92 -0
- package/packages/universaldb/src/utils/subspace.rs +95 -0
- package/packages/universaldb/src/value.rs +159 -0
- package/packages/universaldb/src/versionstamp.rs +173 -0
- package/packages/universaldb/tests/integration.rs +2733 -0
- package/packages/universaldb/tests/integration_gas.rs +264 -0
- package/packages/universaldb/tests/rocksdb.rs +141 -0
- package/packages/universaldb/tests/versionstamp.rs +184 -0
- package/packages/universalpubsub/Cargo.toml +38 -0
- package/packages/universalpubsub/benches/simple.rs +932 -0
- package/packages/universalpubsub/src/chunking.rs +226 -0
- package/packages/universalpubsub/src/driver/memory/mod.rs +91 -0
- package/packages/universalpubsub/src/driver/mod.rs +58 -0
- package/packages/universalpubsub/src/driver/nats/mod.rs +79 -0
- package/packages/universalpubsub/src/driver/postgres/mod.rs +443 -0
- package/packages/universalpubsub/src/errors.rs +11 -0
- package/packages/universalpubsub/src/lib.rs +7 -0
- package/packages/universalpubsub/src/pubsub.rs +415 -0
- package/packages/universalpubsub/tests/integration.rs +441 -0
- package/packages/universalpubsub/tests/reconnect.rs +359 -0
- package/packages/util/Cargo.toml +41 -0
- package/packages/util/build.rs +13 -0
- package/packages/util/src/backoff.rs +109 -0
- package/packages/util/src/billing.rs +3 -0
- package/packages/util/src/build_meta.rs +33 -0
- package/packages/util/src/check.rs +222 -0
- package/packages/util/src/duration.rs +77 -0
- package/packages/util/src/faker.rs +81 -0
- package/packages/util/src/format.rs +185 -0
- package/packages/util/src/future.rs +1 -0
- package/packages/util/src/geo.rs +5 -0
- package/packages/util/src/lib.rs +40 -0
- package/packages/util/src/math.rs +35 -0
- package/packages/util/src/req.rs +41 -0
- package/packages/util/src/serde.rs +516 -0
- package/packages/util/src/size.rs +27 -0
- package/packages/util/src/sort.rs +13 -0
- package/packages/util/src/timestamp.rs +58 -0
- package/packages/util/src/url.rs +3 -0
- package/packages/util-id/Cargo.toml +13 -0
- package/packages/util-id/src/lib.rs +329 -0
- package/packages/workflow-worker/Cargo.toml +16 -0
- package/packages/workflow-worker/src/lib.rs +15 -0
- package/sdks/api/fern/fern.config.json +4 -0
- package/sdks/api/fern/generators.yml +25 -0
- package/sdks/go/api-full/client/client.go +459 -0
- package/sdks/go/api-full/client/client_test.go +43 -0
- package/sdks/go/api-full/client/options.go +39 -0
- package/sdks/go/api-full/core/client_option.go +44 -0
- package/sdks/go/api-full/core/core.go +220 -0
- package/sdks/go/api-full/core/core_test.go +219 -0
- package/sdks/go/api-full/core/stringer.go +13 -0
- package/sdks/go/api-full/datacenters/client.go +50 -0
- package/sdks/go/api-full/go.mod +8 -0
- package/sdks/go/api-full/go.sum +12 -0
- package/sdks/go/api-full/health/client.go +50 -0
- package/sdks/go/api-full/namespaces/client.go +92 -0
- package/sdks/go/api-full/namespaces.go +15 -0
- package/sdks/go/api-full/pointer.go +103 -0
- package/sdks/go/api-full/runners/client.go +111 -0
- package/sdks/go/api-full/runners.go +18 -0
- package/sdks/go/api-full/types.go +1638 -0
- package/sdks/rust/api-full/.openapi-generator/FILES +28 -0
- package/sdks/rust/api-full/.openapi-generator/VERSION +1 -0
- package/sdks/rust/api-full/.openapi-generator-ignore +23 -0
- package/sdks/rust/api-full/.travis.yml +1 -0
- package/sdks/rust/api-full/Cargo.toml +15 -0
- package/sdks/rust/api-full/README.md +53 -0
- package/sdks/rust/api-full/docs/Actor.md +19 -0
- package/sdks/rust/api-full/docs/ActorLifecycle.md +12 -0
- package/sdks/rust/api-full/docs/ActorsApi.md +37 -0
- package/sdks/rust/api-full/docs/ActorsCreateRequest.md +13 -0
- package/sdks/rust/api-full/docs/ActorsCreateResponse.md +11 -0
- package/sdks/rust/api-full/docs/Namespace.md +14 -0
- package/sdks/rust/api-full/docs/NamespacesCreateRequest.md +12 -0
- package/sdks/rust/api-full/docs/NamespacesCreateResponse.md +11 -0
- package/sdks/rust/api-full/docs/NsApi.md +37 -0
- package/sdks/rust/api-full/git_push.sh +57 -0
- package/sdks/rust/api-full/rust/.openapi-generator/FILES +140 -0
- package/sdks/rust/api-full/rust/.openapi-generator/VERSION +1 -0
- package/sdks/rust/api-full/rust/.openapi-generator-ignore +23 -0
- package/sdks/rust/api-full/rust/.travis.yml +1 -0
- package/sdks/rust/api-full/rust/Cargo.toml +15 -0
- package/sdks/rust/api-full/rust/README.md +111 -0
- package/sdks/rust/api-full/rust/docs/Actor.md +24 -0
- package/sdks/rust/api-full/rust/docs/ActorName.md +11 -0
- package/sdks/rust/api-full/rust/docs/ActorsCreateApi.md +40 -0
- package/sdks/rust/api-full/rust/docs/ActorsCreateRequest.md +16 -0
- package/sdks/rust/api-full/rust/docs/ActorsCreateResponse.md +11 -0
- package/sdks/rust/api-full/rust/docs/ActorsDeleteApi.md +40 -0
- package/sdks/rust/api-full/rust/docs/ActorsGetOrCreateApi.md +40 -0
- package/sdks/rust/api-full/rust/docs/ActorsGetOrCreateRequest.md +16 -0
- package/sdks/rust/api-full/rust/docs/ActorsGetOrCreateResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/ActorsKvGetApi.md +38 -0
- package/sdks/rust/api-full/rust/docs/ActorsKvGetResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/ActorsListApi.md +45 -0
- package/sdks/rust/api-full/rust/docs/ActorsListNamesApi.md +41 -0
- package/sdks/rust/api-full/rust/docs/ActorsListNamesResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/ActorsListResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/CrashPolicy.md +14 -0
- package/sdks/rust/api-full/rust/docs/Datacenter.md +13 -0
- package/sdks/rust/api-full/rust/docs/DatacenterHealth.md +16 -0
- package/sdks/rust/api-full/rust/docs/DatacentersApi.md +34 -0
- package/sdks/rust/api-full/rust/docs/DatacentersListResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/HealthApi.md +34 -0
- package/sdks/rust/api-full/rust/docs/HealthFanoutResponse.md +11 -0
- package/sdks/rust/api-full/rust/docs/HealthResponse.md +13 -0
- package/sdks/rust/api-full/rust/docs/HealthStatus.md +13 -0
- package/sdks/rust/api-full/rust/docs/Namespace.md +14 -0
- package/sdks/rust/api-full/rust/docs/NamespaceListResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/NamespacesApi.md +69 -0
- package/sdks/rust/api-full/rust/docs/NamespacesCreateRequest.md +12 -0
- package/sdks/rust/api-full/rust/docs/NamespacesCreateResponse.md +11 -0
- package/sdks/rust/api-full/rust/docs/Pagination.md +11 -0
- package/sdks/rust/api-full/rust/docs/Runner.md +25 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfig.md +13 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigKind.md +12 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigKindOneOf.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigKindOneOf1.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigKindOneOf1Serverless.md +17 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigVariant.md +13 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsDeleteApi.md +38 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsListApi.md +41 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsListResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsListResponseRunnerConfigsValue.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsRefreshMetadataApi.md +39 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessHealthCheckApi.md +38 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessHealthCheckRequest.md +12 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessHealthCheckResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessHealthCheckResponseOneOf.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessHealthCheckResponseOneOf1.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessHealthCheckResponseOneOf1Failure.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessHealthCheckResponseOneOfSuccess.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataError.md +16 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf1.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf2.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf3.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf3NonSuccessStatus.md +12 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf4.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf4InvalidResponseJson.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf5.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsServerlessMetadataErrorOneOf5InvalidResponseSchema.md +12 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsUpsertApi.md +39 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsUpsertRequestBody.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnerConfigsUpsertResponse.md +11 -0
- package/sdks/rust/api-full/rust/docs/RunnersApi.md +75 -0
- package/sdks/rust/api-full/rust/docs/RunnersListNamesResponse.md +12 -0
- package/sdks/rust/api-full/rust/docs/RunnersListResponse.md +12 -0
- package/sdks/rust/api-full/rust/git_push.sh +57 -0
- package/sdks/rust/api-full/rust/src/apis/actors_create_api.rs +68 -0
- package/sdks/rust/api-full/rust/src/apis/actors_delete_api.rs +69 -0
- package/sdks/rust/api-full/rust/src/apis/actors_get_or_create_api.rs +68 -0
- package/sdks/rust/api-full/rust/src/apis/actors_kv_get_api.rs +65 -0
- package/sdks/rust/api-full/rust/src/apis/actors_list_api.rs +90 -0
- package/sdks/rust/api-full/rust/src/apis/actors_list_names_api.rs +74 -0
- package/sdks/rust/api-full/rust/src/apis/configuration.rs +51 -0
- package/sdks/rust/api-full/rust/src/apis/datacenters_api.rs +62 -0
- package/sdks/rust/api-full/rust/src/apis/health_api.rs +62 -0
- package/sdks/rust/api-full/rust/src/apis/mod.rs +130 -0
- package/sdks/rust/api-full/rust/src/apis/namespaces_api.rs +126 -0
- package/sdks/rust/api-full/rust/src/apis/runner_configs_delete_api.rs +66 -0
- package/sdks/rust/api-full/rust/src/apis/runner_configs_list_api.rs +81 -0
- package/sdks/rust/api-full/rust/src/apis/runner_configs_refresh_metadata_api.rs +68 -0
- package/sdks/rust/api-full/rust/src/apis/runner_configs_serverless_health_check_api.rs +67 -0
- package/sdks/rust/api-full/rust/src/apis/runner_configs_upsert_api.rs +68 -0
- package/sdks/rust/api-full/rust/src/apis/runners_api.rs +141 -0
- package/sdks/rust/api-full/rust/src/lib.rs +11 -0
- package/sdks/rust/api-full/rust/src/models/actor.rs +73 -0
- package/sdks/rust/api-full/rust/src/models/actor_name.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/actors_create_request.rs +42 -0
- package/sdks/rust/api-full/rust/src/models/actors_create_response.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/actors_get_or_create_request.rs +42 -0
- package/sdks/rust/api-full/rust/src/models/actors_get_or_create_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/actors_kv_get_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/actors_list_names_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/actors_list_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/crash_policy.rs +41 -0
- package/sdks/rust/api-full/rust/src/models/datacenter.rs +33 -0
- package/sdks/rust/api-full/rust/src/models/datacenter_health.rs +42 -0
- package/sdks/rust/api-full/rust/src/models/datacenters_list_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/health_fanout_response.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/health_response.rs +33 -0
- package/sdks/rust/api-full/rust/src/models/health_status.rs +38 -0
- package/sdks/rust/api-full/rust/src/models/mod.rs +100 -0
- package/sdks/rust/api-full/rust/src/models/namespace.rs +36 -0
- package/sdks/rust/api-full/rust/src/models/namespace_list_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/namespaces_create_request.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/namespaces_create_response.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/pagination.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner.rs +69 -0
- package/sdks/rust/api-full/rust/src/models/runner_config.rs +33 -0
- package/sdks/rust/api-full/rust/src/models/runner_config_kind.rs +26 -0
- package/sdks/rust/api-full/rust/src/models/runner_config_kind_one_of.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_config_kind_one_of_1.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_config_kind_one_of_1_serverless.rs +46 -0
- package/sdks/rust/api-full/rust/src/models/runner_config_variant.rs +38 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_list_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_list_response_runner_configs_value.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_health_check_request.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_health_check_response.rs +26 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_health_check_response_one_of.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_health_check_response_one_of_1.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_health_check_response_one_of_1_failure.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_health_check_response_one_of_success.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_1.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_2.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_3.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_3_non_success_status.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_4.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_4_invalid_response_json.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_5.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_serverless_metadata_error_one_of_5_invalid_response_schema.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_upsert_request_body.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runner_configs_upsert_response.rs +27 -0
- package/sdks/rust/api-full/rust/src/models/runners_list_names_response.rs +30 -0
- package/sdks/rust/api-full/rust/src/models/runners_list_response.rs +30 -0
- package/sdks/rust/api-full/src/apis/actors_api.rs +67 -0
- package/sdks/rust/api-full/src/apis/configuration.rs +48 -0
- package/sdks/rust/api-full/src/apis/mod.rs +119 -0
- package/sdks/rust/api-full/src/apis/ns_api.rs +67 -0
- package/sdks/rust/api-full/src/lib.rs +11 -0
- package/sdks/rust/api-full/src/models/actor.rs +72 -0
- package/sdks/rust/api-full/src/models/actor_lifecycle.rs +29 -0
- package/sdks/rust/api-full/src/models/actors_create_request.rs +36 -0
- package/sdks/rust/api-full/src/models/actors_create_response.rs +26 -0
- package/sdks/rust/api-full/src/models/mod.rs +14 -0
- package/sdks/rust/api-full/src/models/namespace.rs +40 -0
- package/sdks/rust/api-full/src/models/namespaces_create_request.rs +26 -0
- package/sdks/rust/api-full/src/models/namespaces_create_response.rs +26 -0
- package/sdks/rust/data/Cargo.toml +18 -0
- package/sdks/rust/data/build.rs +15 -0
- package/sdks/rust/data/src/converted.rs +137 -0
- package/sdks/rust/data/src/generated.rs +1 -0
- package/sdks/rust/data/src/lib.rs +11 -0
- package/sdks/rust/data/src/versioned/mod.rs +178 -0
- package/sdks/rust/data/src/versioned/namespace_runner_config.rs +125 -0
- package/sdks/rust/epoxy-protocol/Cargo.toml +17 -0
- package/sdks/rust/epoxy-protocol/build.rs +18 -0
- package/sdks/rust/epoxy-protocol/src/generated.rs +1 -0
- package/sdks/rust/epoxy-protocol/src/lib.rs +7 -0
- package/sdks/rust/epoxy-protocol/src/versioned.rs +206 -0
- package/sdks/rust/runner-protocol/Cargo.toml +23 -0
- package/sdks/rust/runner-protocol/build.rs +115 -0
- package/sdks/rust/runner-protocol/src/compat.rs +7 -0
- package/sdks/rust/runner-protocol/src/generated.rs +1 -0
- package/sdks/rust/runner-protocol/src/lib.rs +10 -0
- package/sdks/rust/runner-protocol/src/util.rs +14 -0
- package/sdks/rust/runner-protocol/src/uuid_compat.rs +209 -0
- package/sdks/rust/runner-protocol/src/versioned.rs +1734 -0
- package/sdks/rust/ups-protocol/Cargo.toml +17 -0
- package/sdks/rust/ups-protocol/build.rs +18 -0
- package/sdks/rust/ups-protocol/src/generated.rs +1 -0
- package/sdks/rust/ups-protocol/src/lib.rs +7 -0
- package/sdks/rust/ups-protocol/src/versioned.rs +48 -0
- package/sdks/schemas/README.md +6 -0
- package/sdks/schemas/data/namespace.runner_config.v1.bare +13 -0
- package/sdks/schemas/data/namespace.runner_config.v2.bare +23 -0
- package/sdks/schemas/data/pegboard.namespace.actor_by_key.v1.bare +6 -0
- package/sdks/schemas/data/pegboard.namespace.actor_name.v1.bare +5 -0
- package/sdks/schemas/data/pegboard.namespace.runner_alloc_idx.v1.bare +7 -0
- package/sdks/schemas/data/pegboard.namespace.runner_by_key.v1.bare +6 -0
- package/sdks/schemas/data/pegboard.runner.metadata.v1.bare +5 -0
- package/sdks/schemas/epoxy-protocol/v1.bare +260 -0
- package/sdks/schemas/runner-protocol/v1.bare +393 -0
- package/sdks/schemas/runner-protocol/v2.bare +403 -0
- package/sdks/schemas/runner-protocol/v3.bare +436 -0
- package/sdks/schemas/ups-protocol/v1.bare +23 -0
- package/sdks/typescript/api-full/.turbo/turbo-build.log +42 -0
- package/sdks/typescript/api-full/build.js +69 -0
- package/sdks/typescript/api-full/package.json +59 -0
- package/sdks/typescript/api-full/rivetkit-engine-api-full-25.5.3.tgz +0 -0
- package/sdks/typescript/api-full/src/Client.ts +984 -0
- package/sdks/typescript/api-full/src/api/client/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/client/requests/ActorsCreateRequest.ts +24 -0
- package/sdks/typescript/api-full/src/api/client/requests/ActorsDeleteRequest.ts +11 -0
- package/sdks/typescript/api-full/src/api/client/requests/ActorsGetOrCreateRequest.ts +25 -0
- package/sdks/typescript/api-full/src/api/client/requests/ActorsListNamesRequest.ts +15 -0
- package/sdks/typescript/api-full/src/api/client/requests/ActorsListRequest.ts +19 -0
- package/sdks/typescript/api-full/src/api/client/requests/RunnerConfigsDeleteRequest.ts +13 -0
- package/sdks/typescript/api-full/src/api/client/requests/RunnerConfigsListRequest.ts +19 -0
- package/sdks/typescript/api-full/src/api/client/requests/RunnerConfigsRefreshMetadataRequest.ts +19 -0
- package/sdks/typescript/api-full/src/api/client/requests/RunnerConfigsServerlessHealthCheckRequest.ts +16 -0
- package/sdks/typescript/api-full/src/api/client/requests/RunnerConfigsUpsertRequestBody.ts +19 -0
- package/sdks/typescript/api-full/src/api/client/requests/index.ts +10 -0
- package/sdks/typescript/api-full/src/api/index.ts +3 -0
- package/sdks/typescript/api-full/src/api/resources/datacenters/client/Client.ts +97 -0
- package/sdks/typescript/api-full/src/api/resources/datacenters/client/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/resources/datacenters/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/resources/health/client/Client.ts +97 -0
- package/sdks/typescript/api-full/src/api/resources/health/client/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/resources/health/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/resources/index.ts +6 -0
- package/sdks/typescript/api-full/src/api/resources/namespaces/client/Client.ts +187 -0
- package/sdks/typescript/api-full/src/api/resources/namespaces/client/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/resources/namespaces/client/requests/NamespacesCreateRequest.ts +15 -0
- package/sdks/typescript/api-full/src/api/resources/namespaces/client/requests/NamespacesListRequest.ts +14 -0
- package/sdks/typescript/api-full/src/api/resources/namespaces/client/requests/index.ts +2 -0
- package/sdks/typescript/api-full/src/api/resources/namespaces/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/resources/runners/client/Client.ts +209 -0
- package/sdks/typescript/api-full/src/api/resources/runners/client/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/resources/runners/client/requests/RunnersListNamesRequest.ts +15 -0
- package/sdks/typescript/api-full/src/api/resources/runners/client/requests/RunnersListRequest.ts +18 -0
- package/sdks/typescript/api-full/src/api/resources/runners/client/requests/index.ts +2 -0
- package/sdks/typescript/api-full/src/api/resources/runners/index.ts +1 -0
- package/sdks/typescript/api-full/src/api/types/Actor.ts +32 -0
- package/sdks/typescript/api-full/src/api/types/ActorName.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/ActorsCreateResponse.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/ActorsDeleteResponse.ts +5 -0
- package/sdks/typescript/api-full/src/api/types/ActorsGetOrCreateResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/ActorsKvGetResponse.ts +8 -0
- package/sdks/typescript/api-full/src/api/types/ActorsListNamesResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/ActorsListResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/CrashPolicy.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/Datacenter.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/DatacenterHealth.ts +14 -0
- package/sdks/typescript/api-full/src/api/types/DatacentersListResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/HealthFanoutResponse.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/HealthResponse.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/HealthStatus.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/Namespace.ts +12 -0
- package/sdks/typescript/api-full/src/api/types/NamespaceListResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/NamespacesCreateResponse.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/Pagination.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RivetId.ts +5 -0
- package/sdks/typescript/api-full/src/api/types/Runner.ts +23 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfig.ts +11 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigKind.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigKindNormal.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigKindServerless.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigKindServerlessServerless.ts +14 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigServerless.ts +14 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigVariant.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsDeleteResponse.ts +5 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsListResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsListResponseRunnerConfigsValue.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsRefreshMetadataRequestBody.ts +5 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsRefreshMetadataResponse.ts +5 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessHealthCheckResponse.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessHealthCheckResponseFailure.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessHealthCheckResponseFailureFailure.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessHealthCheckResponseSuccess.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessHealthCheckResponseSuccessSuccess.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataError.ts +13 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorInvalidRequest.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJson.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchema.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema.ts +8 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatus.ts +9 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus.ts +8 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorRequestFailed.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsServerlessMetadataErrorRequestTimedOut.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnerConfigsUpsertResponse.ts +7 -0
- package/sdks/typescript/api-full/src/api/types/RunnersListNamesResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/RunnersListResponse.ts +10 -0
- package/sdks/typescript/api-full/src/api/types/index.ts +51 -0
- package/sdks/typescript/api-full/src/core/auth/BasicAuth.ts +31 -0
- package/sdks/typescript/api-full/src/core/auth/BearerToken.ts +15 -0
- package/sdks/typescript/api-full/src/core/auth/index.ts +2 -0
- package/sdks/typescript/api-full/src/core/fetcher/APIResponse.ts +12 -0
- package/sdks/typescript/api-full/src/core/fetcher/Fetcher.ts +144 -0
- package/sdks/typescript/api-full/src/core/fetcher/Supplier.ts +11 -0
- package/sdks/typescript/api-full/src/core/fetcher/createRequestUrl.ts +10 -0
- package/sdks/typescript/api-full/src/core/fetcher/getFetchFn.ts +25 -0
- package/sdks/typescript/api-full/src/core/fetcher/getHeader.ts +8 -0
- package/sdks/typescript/api-full/src/core/fetcher/getRequestBody.ts +16 -0
- package/sdks/typescript/api-full/src/core/fetcher/getResponseBody.ts +34 -0
- package/sdks/typescript/api-full/src/core/fetcher/index.ts +5 -0
- package/sdks/typescript/api-full/src/core/fetcher/makeRequest.ts +44 -0
- package/sdks/typescript/api-full/src/core/fetcher/requestWithRetries.ts +33 -0
- package/sdks/typescript/api-full/src/core/fetcher/signals.ts +38 -0
- package/sdks/typescript/api-full/src/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.ts +257 -0
- package/sdks/typescript/api-full/src/core/fetcher/stream-wrappers/NodePre18StreamWrapper.ts +107 -0
- package/sdks/typescript/api-full/src/core/fetcher/stream-wrappers/UndiciStreamWrapper.ts +243 -0
- package/sdks/typescript/api-full/src/core/fetcher/stream-wrappers/chooseStreamWrapper.ts +34 -0
- package/sdks/typescript/api-full/src/core/index.ts +4 -0
- package/sdks/typescript/api-full/src/core/json.ts +27 -0
- package/sdks/typescript/api-full/src/core/runtime/index.ts +1 -0
- package/sdks/typescript/api-full/src/core/runtime/runtime.ts +131 -0
- package/sdks/typescript/api-full/src/core/schemas/Schema.ts +101 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/bigint/bigint.ts +55 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/bigint/index.ts +1 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/date/date.ts +65 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/date/index.ts +1 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/enum/enum.ts +43 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/enum/index.ts +1 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/index.ts +14 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/lazy/index.ts +3 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/lazy/lazy.ts +32 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/lazy/lazyObject.ts +20 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/list/index.ts +1 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/list/list.ts +73 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/literals/booleanLiteral.ts +29 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/literals/index.ts +2 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/literals/stringLiteral.ts +29 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object/index.ts +22 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object/object.ts +366 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object/objectWithoutOptionalProperties.ts +18 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object/property.ts +23 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object/types.ts +58 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object-like/getObjectLikeUtils.ts +79 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object-like/index.ts +2 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/object-like/types.ts +11 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/primitives/any.ts +4 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/primitives/boolean.ts +25 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/primitives/index.ts +5 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/primitives/number.ts +25 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/primitives/string.ts +25 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/primitives/unknown.ts +4 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/record/index.ts +2 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/record/record.ts +129 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/record/types.ts +17 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/schema-utils/JsonError.ts +9 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/schema-utils/ParseError.ts +9 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/schema-utils/getSchemaUtils.ts +181 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/schema-utils/index.ts +4 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/schema-utils/stringifyValidationErrors.ts +8 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/set/index.ts +1 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/set/set.ts +43 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/undiscriminated-union/index.ts +6 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/undiscriminated-union/types.ts +10 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.ts +60 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/union/discriminant.ts +14 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/union/index.ts +10 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/union/types.ts +26 -0
- package/sdks/typescript/api-full/src/core/schemas/builders/union/union.ts +170 -0
- package/sdks/typescript/api-full/src/core/schemas/index.ts +2 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/MaybePromise.ts +1 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/addQuestionMarksToNullableProperties.ts +9 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/createIdentitySchemaCreator.ts +21 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/entries.ts +3 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/filterObject.ts +13 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/getErrorMessageForIncorrectType.ts +25 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/isPlainObject.ts +17 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/keys.ts +3 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/maybeSkipValidation.ts +38 -0
- package/sdks/typescript/api-full/src/core/schemas/utils/partition.ts +12 -0
- package/sdks/typescript/api-full/src/errors/RivetError.ts +47 -0
- package/sdks/typescript/api-full/src/errors/RivetTimeoutError.ts +10 -0
- package/sdks/typescript/api-full/src/errors/index.ts +2 -0
- package/sdks/typescript/api-full/src/index.ts +4 -0
- package/sdks/typescript/api-full/src/serialization/client/index.ts +1 -0
- package/sdks/typescript/api-full/src/serialization/client/requests/ActorsCreateRequest.ts +31 -0
- package/sdks/typescript/api-full/src/serialization/client/requests/ActorsGetOrCreateRequest.ts +31 -0
- package/sdks/typescript/api-full/src/serialization/client/requests/RunnerConfigsServerlessHealthCheckRequest.ts +22 -0
- package/sdks/typescript/api-full/src/serialization/client/requests/RunnerConfigsUpsertRequestBody.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/client/requests/index.ts +4 -0
- package/sdks/typescript/api-full/src/serialization/index.ts +3 -0
- package/sdks/typescript/api-full/src/serialization/resources/index.ts +2 -0
- package/sdks/typescript/api-full/src/serialization/resources/namespaces/client/index.ts +1 -0
- package/sdks/typescript/api-full/src/serialization/resources/namespaces/client/requests/NamespacesCreateRequest.ts +22 -0
- package/sdks/typescript/api-full/src/serialization/resources/namespaces/client/requests/index.ts +1 -0
- package/sdks/typescript/api-full/src/serialization/resources/namespaces/index.ts +1 -0
- package/sdks/typescript/api-full/src/serialization/types/Actor.ts +45 -0
- package/sdks/typescript/api-full/src/serialization/types/ActorName.ts +18 -0
- package/sdks/typescript/api-full/src/serialization/types/ActorsCreateResponse.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/ActorsDeleteResponse.ts +16 -0
- package/sdks/typescript/api-full/src/serialization/types/ActorsGetOrCreateResponse.ts +23 -0
- package/sdks/typescript/api-full/src/serialization/types/ActorsKvGetResponse.ts +22 -0
- package/sdks/typescript/api-full/src/serialization/types/ActorsListNamesResponse.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/ActorsListResponse.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/CrashPolicy.ts +14 -0
- package/sdks/typescript/api-full/src/serialization/types/Datacenter.ts +22 -0
- package/sdks/typescript/api-full/src/serialization/types/DatacenterHealth.ts +32 -0
- package/sdks/typescript/api-full/src/serialization/types/DatacentersListResponse.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/HealthFanoutResponse.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/HealthResponse.ts +22 -0
- package/sdks/typescript/api-full/src/serialization/types/HealthStatus.ts +14 -0
- package/sdks/typescript/api-full/src/serialization/types/Namespace.ts +25 -0
- package/sdks/typescript/api-full/src/serialization/types/NamespaceListResponse.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/NamespacesCreateResponse.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/Pagination.ts +18 -0
- package/sdks/typescript/api-full/src/serialization/types/RivetId.ts +13 -0
- package/sdks/typescript/api-full/src/serialization/types/Runner.ts +46 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfig.ts +23 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigKind.ts +16 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigKindNormal.ts +20 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigKindServerless.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigKindServerlessServerless.ts +32 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigServerless.ts +32 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigVariant.ts +16 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsDeleteResponse.ts +16 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsListResponse.ts +27 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsListResponseRunnerConfigsValue.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsRefreshMetadataRequestBody.ts +16 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsRefreshMetadataResponse.ts +16 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessHealthCheckResponse.ts +23 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailure.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailureFailure.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccess.ts +21 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccessSuccess.ts +20 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataError.ts +35 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidRequest.ts +23 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJson.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson.ts +20 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchema.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema.ts +22 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatus.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus.ts +22 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorRequestFailed.ts +23 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsServerlessMetadataErrorRequestTimedOut.ts +23 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnerConfigsUpsertResponse.ts +20 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnersListNamesResponse.ts +23 -0
- package/sdks/typescript/api-full/src/serialization/types/RunnersListResponse.ts +24 -0
- package/sdks/typescript/api-full/src/serialization/types/index.ts +51 -0
- package/sdks/typescript/api-full/tsconfig.json +24 -0
- package/sdks/typescript/runner/.turbo/turbo-build.log +22 -0
- package/sdks/typescript/runner/benches/actor-lifecycle.bench.ts +190 -0
- package/sdks/typescript/runner/benches/utils.ts +143 -0
- package/sdks/typescript/runner/dist/mod.cjs +2951 -0
- package/sdks/typescript/runner/dist/mod.cjs.map +1 -0
- package/sdks/typescript/runner/dist/mod.d.cts +326 -0
- package/sdks/typescript/runner/dist/mod.d.ts +326 -0
- package/sdks/typescript/runner/dist/mod.js +2951 -0
- package/sdks/typescript/runner/dist/mod.js.map +1 -0
- package/sdks/typescript/runner/node_modules/.bin/pino +21 -0
- package/sdks/typescript/runner/node_modules/.bin/tsc +21 -0
- package/sdks/typescript/runner/node_modules/.bin/tsserver +21 -0
- package/sdks/typescript/runner/node_modules/.bin/tsup +21 -0
- package/sdks/typescript/runner/node_modules/.bin/tsup-node +21 -0
- package/sdks/typescript/runner/node_modules/.bin/tsx +21 -0
- package/sdks/typescript/runner/node_modules/.bin/uuid +21 -0
- package/sdks/typescript/runner/node_modules/.bin/vitest +21 -0
- package/sdks/typescript/runner/package.json +37 -0
- package/sdks/typescript/runner/src/actor.ts +196 -0
- package/sdks/typescript/runner/src/log.ts +11 -0
- package/sdks/typescript/runner/src/mod.ts +1755 -0
- package/sdks/typescript/runner/src/stringify.ts +354 -0
- package/sdks/typescript/runner/src/tunnel.ts +1178 -0
- package/sdks/typescript/runner/src/utils.ts +159 -0
- package/sdks/typescript/runner/src/websocket-tunnel-adapter.ts +567 -0
- package/sdks/typescript/runner/src/websocket.ts +43 -0
- package/sdks/typescript/runner/tests/lifecycle.test.ts +596 -0
- package/sdks/typescript/runner/tests/utils.test.ts +194 -0
- package/sdks/typescript/runner/tsconfig.json +11 -0
- package/sdks/typescript/runner/tsup.config.ts +4 -0
- package/sdks/typescript/runner/turbo.json +4 -0
- package/sdks/typescript/runner/vitest.config.ts +16 -0
- package/sdks/typescript/runner-protocol/.turbo/turbo-build.log +22 -0
- package/sdks/typescript/runner-protocol/dist/index.cjs +1632 -0
- package/sdks/typescript/runner-protocol/dist/index.cjs.map +1 -0
- package/sdks/typescript/runner-protocol/dist/index.d.cts +666 -0
- package/sdks/typescript/runner-protocol/dist/index.d.ts +666 -0
- package/sdks/typescript/runner-protocol/dist/index.js +1632 -0
- package/sdks/typescript/runner-protocol/dist/index.js.map +1 -0
- package/sdks/typescript/runner-protocol/node_modules/.bin/tsc +21 -0
- package/sdks/typescript/runner-protocol/node_modules/.bin/tsserver +21 -0
- package/sdks/typescript/runner-protocol/node_modules/.bin/tsup +21 -0
- package/sdks/typescript/runner-protocol/node_modules/.bin/tsup-node +21 -0
- package/sdks/typescript/runner-protocol/package.json +34 -0
- package/sdks/typescript/runner-protocol/src/index.ts +2121 -0
- package/sdks/typescript/runner-protocol/tsconfig.json +17 -0
- package/sdks/typescript/runner-protocol/tsup.config.ts +4 -0
- package/sdks/typescript/runner-protocol/turbo.json +4 -0
- package/sdks/typescript/test-runner/.turbo/turbo-build.log +17 -0
- package/sdks/typescript/test-runner/Dockerfile +26 -0
- package/sdks/typescript/test-runner/dist/index.d.ts +6 -0
- package/sdks/typescript/test-runner/dist/index.js +345 -0
- package/sdks/typescript/test-runner/dist/index.js.map +1 -0
- package/sdks/typescript/test-runner/node_modules/.bin/pino +21 -0
- package/sdks/typescript/test-runner/node_modules/.bin/tsc +21 -0
- package/sdks/typescript/test-runner/node_modules/.bin/tsserver +21 -0
- package/sdks/typescript/test-runner/node_modules/.bin/tsup +21 -0
- package/sdks/typescript/test-runner/node_modules/.bin/tsup-node +21 -0
- package/sdks/typescript/test-runner/node_modules/.bin/tsx +21 -0
- package/sdks/typescript/test-runner/node_modules/.bin/vitest +21 -0
- package/sdks/typescript/test-runner/package.json +27 -0
- package/sdks/typescript/test-runner/src/index.ts +287 -0
- package/sdks/typescript/test-runner/src/log.ts +194 -0
- package/sdks/typescript/test-runner/tsconfig.json +11 -0
- package/sdks/typescript/test-runner/tsup.config.ts +7 -0
- package/sdks/typescript/test-runner/turbo.json +4 -0
- package/sdks/typescript/test-runner/vitest.config.ts +16 -0
- package/tests/load/README.md +28 -0
- package/tests/load/actor-lifecycle/README.md +26 -0
- package/tests/load/actor-lifecycle/actor.ts +41 -0
- package/tests/load/actor-lifecycle/config.ts +14 -0
- package/tests/load/actor-lifecycle/index.ts +62 -0
- package/tests/load/actor-lifecycle/rivet_api.ts +140 -0
- package/tests/load/actor-lifecycle/types.ts +17 -0
- package/tests/load/node_modules/.bin/biome +21 -0
- package/tests/load/node_modules/.bin/tsc +21 -0
- package/tests/load/node_modules/.bin/tsserver +21 -0
- package/tests/load/package.json +15 -0
- package/tests/load/tsconfig.json +20 -0
- package/tests/smoke/README.md +32 -0
- package/tests/smoke/package.json +19 -0
- package/tests/smoke/scripts/connect.ts +41 -0
- package/tests/smoke/src/server/registry.ts +32 -0
- package/tests/smoke/src/server/server.ts +7 -0
- package/tests/smoke/src/smoke-test/index.ts +161 -0
- package/tests/smoke/src/smoke-test/spawn-actor.ts +109 -0
- package/tests/smoke/tsconfig.json +43 -0
- package/tests/smoke/turbo.json +4 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Actor Key Reservation
|
|
2
|
+
|
|
3
|
+
Epoxy is used to globally store which datacenter an actor lives in for a given actor ID.
|
|
4
|
+
|
|
5
|
+
## Schema
|
|
6
|
+
|
|
7
|
+
In Epoxy KV store: `Actor key -> reservation ID`
|
|
8
|
+
|
|
9
|
+
The reservation ID includes the datacenter of where the actor lives.
|
|
10
|
+
|
|
11
|
+
## Consistency Limitations
|
|
12
|
+
|
|
13
|
+
Actors have 2 touch points with Epoxy:
|
|
14
|
+
|
|
15
|
+
- Reserve actor key (epaxos fast path = 1 RTT, epaxos slow path = 2 RTT)
|
|
16
|
+
- Resolve actor ID for key (fast path = 0 RTT, slow path = 1 RTT to nearest DC that has the key)
|
|
17
|
+
|
|
18
|
+
Resolving actor ID uses `kv_get_optimistic`, which assumes a value does not change after being set. This allows us to cache the actor's datacenter locally and never have to read from other nodes once we've resolved it once.
|
|
19
|
+
|
|
20
|
+
## Reservation ID
|
|
21
|
+
|
|
22
|
+
A reservation ID is a unique ID (which includes the datacenter label).
|
|
23
|
+
|
|
24
|
+
**Why not store the actor ID**
|
|
25
|
+
|
|
26
|
+
Actor IDs initially make sense to use since they include the datacenter ID that the actor lives in.
|
|
27
|
+
|
|
28
|
+
Actor IDs can be created and destroyed, but our consistency limitations above requires that we do not change the value after set. Therefore, because we cannot update keys to new actor IDs, we cannot store the actor ID.
|
|
29
|
+
|
|
30
|
+
**Why not store just the datacenter label**
|
|
31
|
+
|
|
32
|
+
A naiive approach would be to store just the datacenter label in epoxy where the actor lives.
|
|
33
|
+
|
|
34
|
+
See reservation chains below.
|
|
35
|
+
|
|
36
|
+
### Reservation Chains & Moving Reservation Datacenters (Future Work)
|
|
37
|
+
|
|
38
|
+
Eventually, actors need to be moved between datacenters OR destroyed then create in a different datacenter.
|
|
39
|
+
|
|
40
|
+
To do this, we'll set up reservation ID chains. Reservation ID chains are used to resolve where a reservation was moved to. When attempting to resolve a reservation that was moved, that datacenter will return the pointer to the reservation that it was moved to.
|
|
41
|
+
|
|
42
|
+
Consider:
|
|
43
|
+
|
|
44
|
+
- Actor 1 created in DC A with key "foo"
|
|
45
|
+
- Generates reservation ID X (in DC A)
|
|
46
|
+
- Epoxy stores: foo = reservation X
|
|
47
|
+
- Actor 1 destroyed
|
|
48
|
+
- Actor 2 created in DC B with key "foo"
|
|
49
|
+
- Generations reservation ID Y (in DC B)
|
|
50
|
+
- DC A stores pointer from reservation X to reservation Y
|
|
51
|
+
- Epoxy still has: foo = reservation X (does not get updated)
|
|
52
|
+
- Next request to key "foo":
|
|
53
|
+
- Read reservation ID X (in DC A) from Epoxy
|
|
54
|
+
- Client send request to DC A with reservation ID X
|
|
55
|
+
- DC A returns pointer to reservation ID Y (in DC B)
|
|
56
|
+
- Client caches this pointer
|
|
57
|
+
- Client sends request to DC B with reservation ID Y
|
|
58
|
+
- If the client requests key "foo" again:
|
|
59
|
+
- Read reservation ID X (in DC A) from Epoxy
|
|
60
|
+
- Client reads cache for reservation X to reservation Y (in DC B)
|
|
61
|
+
- Sends request to DC B
|
|
62
|
+
|
|
63
|
+
The resulting state is:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Epoxy:
|
|
67
|
+
- foo = reservation X (in DC A)
|
|
68
|
+
|
|
69
|
+
Pointer cache (DC A):
|
|
70
|
+
- Reservation X (in DC A) -> reservation Y (in DC B)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Why not just use datacenter label**
|
|
74
|
+
|
|
75
|
+
Consider a chain of pointers between the following datacenters:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
DC label: 1 -> 2 -> 1 -> 3
|
|
79
|
+
Pointer: A B C
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
There is a race condition & possible infinite loop when:
|
|
83
|
+
|
|
84
|
+
- DC 2 has pointer to DC 1 (pointer B)
|
|
85
|
+
- DC 1 still has pointer to DC 2 (pointer A) (has not updated to DC 3, pointer C)
|
|
86
|
+
|
|
87
|
+
Using unique reservation IDs allow us to create IDs like `{dc}.{unique}`. The chain would look like:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
Reservation ID: 1.1 -> 2.2 -> 1.3 -> 3.4
|
|
91
|
+
Pointer: A B C
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Now there cannot be a loop between DC 1 & 2 since clients will follow the chain of pointers.
|
|
95
|
+
|
|
96
|
+
_This section needs more elaboration on edge cases._
|
|
97
|
+
|
|
98
|
+
## Current Limitation: Keys are tied to a datacenter
|
|
99
|
+
|
|
100
|
+
Because we cannot change the value of the reservation ID, actors can only be created in the original for a given ID.
|
|
101
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# API
|
|
2
|
+
|
|
3
|
+
## Packages
|
|
4
|
+
|
|
5
|
+
- `packages/common/api-types`:
|
|
6
|
+
- `src/{}/mod.rs`: Common API types shared between multiple packages.
|
|
7
|
+
- `src/{}/{}.rs`: Request types used in api-peer (e.g. `get`, `list`). This is not in `rivet-api-peer` because these types must be used with `rivet-api-client` in packaes that don't depend ont `rivet-api-peer` (often because of cirular dependency issues, e.g. `rivet-api-peer` -> `pegboard` -> `rivet-api-peer`)
|
|
8
|
+
- `packages/common/api-client`: Helper utilities for making requests to `api-peer`
|
|
9
|
+
- `packages/common/api-builder`: Helper utilities for building API servers with Axum
|
|
10
|
+
- `packages/services/api-peer`: API endpoint used for peer-to-peer communication across datacenters, only used by internal Rivet packages
|
|
11
|
+
- `packages/services/api-public`: API endpoints used by clients calling Rivet APIs
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Errors
|
|
2
|
+
|
|
3
|
+
## RivetError
|
|
4
|
+
|
|
5
|
+
TODO: Document the derive macro
|
|
6
|
+
TODO: Document .build() -> anyhow
|
|
7
|
+
|
|
8
|
+
## Error chains
|
|
9
|
+
|
|
10
|
+
- TODO: use `.chain().filter_map(|x| x.downcast_ref::<T>())` otherwise it'll only check the top-most error
|
|
11
|
+
- TODO: use `#[source]` in thiserror variants in order for wrapped errors to show up in `.chain()`
|
|
12
|
+
- TODO: `#[from]` automatically adds `#[source]`
|
|
13
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Guard Routing & Retry Behavior
|
|
2
|
+
|
|
3
|
+
## Guard Core - Retry Behavior
|
|
4
|
+
|
|
5
|
+
The retry mechanism enables optimistic routing with cache invalidation:
|
|
6
|
+
|
|
7
|
+
- **Fast path with cached routes**: Guard uses cached routing information to avoid expensive database lookups on every request, providing low-latency routing decisions
|
|
8
|
+
- **Graceful cache invalidation**: When actors are stopped, destroyed, or moved to different runners, the cache becomes stale. Rather than proactively invalidating cache entries (which would require complex coordination), any failure response signals that the cached route is invalid
|
|
9
|
+
- **Fresh service discovery on retry**: Retry attempts ignore the cache and perform fresh database lookups to discover current actor locations, ensuring requests reach the correct destination
|
|
10
|
+
|
|
11
|
+
This approach optimizes for the common case (actors are running and routes are valid) while gracefully handling the uncommon case (actors have moved/stopped) without sacrificing performance
|
|
12
|
+
|
|
13
|
+
### Retry Flow
|
|
14
|
+
|
|
15
|
+
**Initial Request (Attempt 1)**:
|
|
16
|
+
|
|
17
|
+
1. Check route cache for target location
|
|
18
|
+
2. If cached route exists, send request to cached target
|
|
19
|
+
3. If request succeeds → return response to client
|
|
20
|
+
4. If request fails with retry-able error → proceed to retry
|
|
21
|
+
|
|
22
|
+
**Retry Attempts (Attempts 2-N)**:
|
|
23
|
+
|
|
24
|
+
1. Wait for exponential backoff delay (100ms × 2^(attempt-2))
|
|
25
|
+
2. **Ignore cache** and perform fresh database lookup for target location
|
|
26
|
+
3. Send request to newly discovered target
|
|
27
|
+
4. If request succeeds → return response to client
|
|
28
|
+
5. If request fails and max attempts not reached → repeat retry flow
|
|
29
|
+
6. If max attempts exceeded → return `502 Bad Gateway` to client
|
|
30
|
+
|
|
31
|
+
**Configuration**:
|
|
32
|
+
|
|
33
|
+
- **Exponential backoff**: Starting interval 100ms, doubles each attempt (100ms, 200ms, 400ms...)
|
|
34
|
+
- **Maximum attempts**: Default 3 total attempts
|
|
35
|
+
- **Retry triggers**: TCP connection errors OR `503 Service Unavailable` with `x-rivet-error` header
|
|
36
|
+
|
|
37
|
+
### Expected Service Response for Retries
|
|
38
|
+
|
|
39
|
+
Services that want to trigger guard retries must respond with:
|
|
40
|
+
|
|
41
|
+
- `503 Service Unavailable` status code
|
|
42
|
+
- `x-rivet-error: <error>` header
|
|
43
|
+
|
|
44
|
+
## Guard Router - Routing Logic
|
|
45
|
+
|
|
46
|
+
### Routing Priority
|
|
47
|
+
|
|
48
|
+
Requests are routed in the following priority order:
|
|
49
|
+
|
|
50
|
+
#### 1. Target-Based Routing (Header: `x-rivet-target`)
|
|
51
|
+
|
|
52
|
+
When the `x-rivet-target` header is present, routes to specific service types:
|
|
53
|
+
|
|
54
|
+
**Actor Services** (`x-rivet-target: actor`):
|
|
55
|
+
- **Required headers**:
|
|
56
|
+
- `x-rivet-actor: <actor_id>` - UUID of the specific actor instance
|
|
57
|
+
- **Optional headers**:
|
|
58
|
+
- `x-rivet-addr: <address>` - Direct address override for actor location
|
|
59
|
+
- **Behavior**: Routes to the specific actor instance, with cross-datacenter routing if the actor resides in a different DC
|
|
60
|
+
|
|
61
|
+
**Runner** (`x-rivet-target: runner`):
|
|
62
|
+
- **Purpose**: Routes WebSocket connections to the Pegboard runner service
|
|
63
|
+
- **Target**: Routes to the configured Pegboard service (`pegboard.lan_host:pegboard.port`)
|
|
64
|
+
- **Use case**: WebSocket connections between runners and the orchestration system
|
|
65
|
+
|
|
66
|
+
#### 2. API Routing (No target header)
|
|
67
|
+
|
|
68
|
+
When no `x-rivet-target` header is present:
|
|
69
|
+
- **Target**: Routes to the public API service (`api_public.lan_host:api_public.port`)
|
|
70
|
+
- **Behavior**: Standard HTTP API requests for general application functionality
|
|
71
|
+
- **Path preservation**: The original request path is preserved in the upstream request
|
|
72
|
+
|
|
73
|
+
#### 3. Fallback
|
|
74
|
+
|
|
75
|
+
Returns `404 Not Found` if no routing rules match.
|
|
76
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Pegboard Tunnel Retries
|
|
2
|
+
|
|
3
|
+
_TODO: Clean up this AI slop explanation_
|
|
4
|
+
|
|
5
|
+
This document explains how retries are coordinated between Guard and Pegboard-based handlers when transient tunnel (UPS) issues occur, for both HTTP and WebSocket traffic.
|
|
6
|
+
|
|
7
|
+
## HTTP
|
|
8
|
+
|
|
9
|
+
- Signal: A retryable transient tunnel failure is signaled by returning an HTTP 503 with the `X-RIVET-ERROR` header set.
|
|
10
|
+
- Example (Pegboard Gateway): on tunnel closed (e.g., UPS `request_timeout`), the gateway replies with `503` and `X-RIVET-ERROR: pegboard_gateway.tunnel_closed`.
|
|
11
|
+
|
|
12
|
+
- Guard behavior
|
|
13
|
+
- Guard considers a response retryable if `status == 503` and the `X-RIVET-ERROR` header is present.
|
|
14
|
+
- Guard then applies exponential backoff (from middleware-config: `max_attempts`, `initial_interval`), re-resolves the route with `ignore_cache = true`, and retries the request.
|
|
15
|
+
- On successful retry, traffic proceeds normally to the new target.
|
|
16
|
+
- If attempts are exhausted, Guard returns an upstream error to the client.
|
|
17
|
+
|
|
18
|
+
- Notes for implementers
|
|
19
|
+
- For transient tunnel failures, return a 503 with `X-RIVET-ERROR` to trigger Guard retries. Use an empty body or minimal payload as appropriate.
|
|
20
|
+
- Do not 503 for non-transient errors; let the normal error flow apply.
|
|
21
|
+
|
|
22
|
+
## WebSocket
|
|
23
|
+
|
|
24
|
+
This section explains how WebSocket retries are coordinated between Guard and Pegboard-based handlers.
|
|
25
|
+
|
|
26
|
+
## Overview
|
|
27
|
+
|
|
28
|
+
- Retries are only possible before the client WebSocket is accepted ("opening" stage).
|
|
29
|
+
- A retryable transient failure is signaled via the error `guard.websocket_service_unavailable` (WebSocketServiceUnavailable).
|
|
30
|
+
- When Guard receives this error during opening, it re-resolves routes (ignoring cache), applies backoff, and retries with the same client socket and a new handler if available.
|
|
31
|
+
- After the client socket is accepted ("open"), retries are not possible; the handler must close gracefully on failure.
|
|
32
|
+
|
|
33
|
+
### Lifecycle Behavior
|
|
34
|
+
|
|
35
|
+
- Opening (before accept)
|
|
36
|
+
- Source: handler detects a transient UPS/tunnel issue before awaiting the `HyperWebsocket` (e.g., failing to `ups.request(...)` to open, or failing to `ups.subscribe(...)`).
|
|
37
|
+
- Handler contract:
|
|
38
|
+
- Do not await the client websocket yet.
|
|
39
|
+
- Return the untouched `HyperWebsocket` in the error tuple so Guard still owns it: `Err((client_ws, err))`.
|
|
40
|
+
- The outer wrapper maps tunnel-closed UPS errors (e.g., `ups.request_timeout`) to `WebSocketServiceUnavailable`.
|
|
41
|
+
- Guard reaction:
|
|
42
|
+
- Treats `WebSocketServiceUnavailable` as retryable.
|
|
43
|
+
- Re-resolves the route with ignore-cache=true, using middleware-config retry/backoff.
|
|
44
|
+
- Outcomes:
|
|
45
|
+
- Re-resolve → `CustomServe`: reuse the same `client_ws` and retry with the new handler.
|
|
46
|
+
- Re-resolve → `Response`: accept client, send a Close with the response message as the reason.
|
|
47
|
+
- Re-resolve → `Target` (non-CustomServe) or mismatch: accept client, send a Close with a generic message (cannot retry).
|
|
48
|
+
- Attempts exhausted: accept client and send a Close with the original error message.
|
|
49
|
+
|
|
50
|
+
- Open (after accept)
|
|
51
|
+
- The handler has awaited the client websocket; Guard can no longer retry.
|
|
52
|
+
- Any failures (UPS send/receive, serialization, etc.) should be handled by closing the connection gracefully.
|
|
53
|
+
|
|
54
|
+
- Closing
|
|
55
|
+
- Best-effort signaling to the server via `ups.request(...)` and to the client via Close frames.
|
|
56
|
+
- Failures are ignored; no retries.
|
|
57
|
+
|
|
58
|
+
- Closed
|
|
59
|
+
- No further action.
|
|
60
|
+
|
|
61
|
+
### Implementer Guidance
|
|
62
|
+
|
|
63
|
+
- Keep the client socket intact for retries:
|
|
64
|
+
- Only return a retryable error (that maps to `WebSocketServiceUnavailable`) before awaiting the client websocket.
|
|
65
|
+
- Return the socket in the error tuple: `Err((client_ws, err))`.
|
|
66
|
+
|
|
67
|
+
- Map tunnel-closed errors at the wrapper:
|
|
68
|
+
- In the outer `handle_websocket` wrapper, detect tunnel-closed (e.g., `ups.request_timeout`) and map to `WebSocketServiceUnavailable`.
|
|
69
|
+
- `handle_websocket_inner` should return raw errors; do not construct `WebSocketServiceUnavailable` inside the inner function.
|
|
70
|
+
|
|
71
|
+
- Use `ups.request` for all tunnel operations (open, messages, close):
|
|
72
|
+
- Pre-accept failures should surface as errors with the unconsumed `client_ws` so Guard can retry.
|
|
73
|
+
- Post-accept failures should break streams and close gracefully; do not attempt retries.
|
|
74
|
+
|
|
75
|
+
- Backoff and attempts:
|
|
76
|
+
- Guard uses middleware-config values for `max_attempts` and `initial_interval` to perform exponential backoff between retries.
|
|
77
|
+
- Routes are re-resolved with ignore-cache=true on each retry to avoid stale targets.
|
|
78
|
+
|
|
79
|
+
### Rationale
|
|
80
|
+
|
|
81
|
+
- Returning the untouched `HyperWebsocket` in errors preserves the ability for Guard to re-route and retry without disconnecting the client.
|
|
82
|
+
- Mapping tunnel-closed conditions to a single sentinel error (`WebSocketServiceUnavailable`) provides a consistent, guard-specific signal for retryability.
|
|
83
|
+
- Restricting retries to pre-accept avoids protocol violations and simplifies resource ownership.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Runner Lifecycle
|
|
2
|
+
|
|
3
|
+
## Connection
|
|
4
|
+
|
|
5
|
+
```mermaid
|
|
6
|
+
sequenceDiagram
|
|
7
|
+
participant R as Runner
|
|
8
|
+
participant P as Pegboard
|
|
9
|
+
participant RW as Runner Workflow
|
|
10
|
+
|
|
11
|
+
note over R,RW: Phase 1: WebSocket Connection
|
|
12
|
+
|
|
13
|
+
R->>P: WebSocket open
|
|
14
|
+
R->>P: ToServerInit (name, version, totalSlots, lastCommandIdx)
|
|
15
|
+
note over R: start ping interval (3s)
|
|
16
|
+
note over R: start command ack interval (5min)
|
|
17
|
+
|
|
18
|
+
P->>RW: Forward (ToServerInit)
|
|
19
|
+
note over RW: ProcessInit activity
|
|
20
|
+
note over RW: load state, process prepopulated actors
|
|
21
|
+
|
|
22
|
+
note over R,RW: Phase 2: Initialize Runner
|
|
23
|
+
|
|
24
|
+
RW->>P: ToClientInit (runnerId, lastEventIdx, metadata)
|
|
25
|
+
P->>R: ToClientInit
|
|
26
|
+
|
|
27
|
+
note over R: store runnerId
|
|
28
|
+
note over R: store runnerLostThreshold from metadata
|
|
29
|
+
|
|
30
|
+
note over R,RW: Phase 3: Resend Pending State
|
|
31
|
+
|
|
32
|
+
note over R: processUnsentKvRequests
|
|
33
|
+
note over R: resendUnacknowledgedEvents
|
|
34
|
+
note over R: tunnel.resendBufferedEvents
|
|
35
|
+
|
|
36
|
+
note over R,RW: Phase 4: Send Missed Commands
|
|
37
|
+
|
|
38
|
+
RW->>P: ToClientCommands (missed commands)
|
|
39
|
+
P->>R: ToClientCommands
|
|
40
|
+
note over R: handleCommands
|
|
41
|
+
|
|
42
|
+
note over R,RW: Phase 5: Complete Connection
|
|
43
|
+
|
|
44
|
+
note over RW: InsertDb activity
|
|
45
|
+
note over RW: write runner to database
|
|
46
|
+
note over RW: update allocation indexes
|
|
47
|
+
|
|
48
|
+
note over R: config.onConnected callback
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Reconnect
|
|
52
|
+
|
|
53
|
+
```mermaid
|
|
54
|
+
sequenceDiagram
|
|
55
|
+
participant R as Runner
|
|
56
|
+
participant P as Pegboard
|
|
57
|
+
participant RW as Runner Workflow
|
|
58
|
+
|
|
59
|
+
note over R,RW: Phase 1: Detect Disconnection
|
|
60
|
+
|
|
61
|
+
alt WebSocket error/close
|
|
62
|
+
P--xR: connection lost
|
|
63
|
+
note over R: start runner lost timeout (if threshold configured)
|
|
64
|
+
note over R: schedule reconnect with backoff
|
|
65
|
+
note over R: config.onDisconnected callback
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
note over R,RW: Phase 2: Reconnect
|
|
69
|
+
|
|
70
|
+
note over R: calculate backoff delay
|
|
71
|
+
note over R: increment reconnectAttempt counter
|
|
72
|
+
|
|
73
|
+
R->>P: WebSocket open (reconnect)
|
|
74
|
+
R->>P: ToServerInit (lastCommandIdx preserved)
|
|
75
|
+
|
|
76
|
+
note over R: clear reconnect timeout
|
|
77
|
+
note over R: clear runner lost timeout
|
|
78
|
+
note over R: reset reconnectAttempt = 0
|
|
79
|
+
|
|
80
|
+
P->>RW: Forward (ToServerInit)
|
|
81
|
+
RW->>P: ToClientInit (lastEventIdx)
|
|
82
|
+
P->>R: ToClientInit
|
|
83
|
+
|
|
84
|
+
note over R,RW: Phase 3: Resynchronize
|
|
85
|
+
|
|
86
|
+
note over R: if runnerId changed, clear event history
|
|
87
|
+
|
|
88
|
+
note over R: processUnsentKvRequests
|
|
89
|
+
note over R: resendUnacknowledgedEvents (from lastEventIdx)
|
|
90
|
+
note over R: tunnel.resendBufferedEvents
|
|
91
|
+
|
|
92
|
+
alt missed commands exist
|
|
93
|
+
RW->>P: ToClientCommands (missed commands)
|
|
94
|
+
P->>R: ToClientCommands
|
|
95
|
+
note over R: handleCommands
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
note over R: config.onConnected callback
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Shutdown
|
|
102
|
+
|
|
103
|
+
```mermaid
|
|
104
|
+
sequenceDiagram
|
|
105
|
+
participant R as Runner
|
|
106
|
+
participant P as Pegboard
|
|
107
|
+
participant RW as Runner Workflow
|
|
108
|
+
participant A as Actors
|
|
109
|
+
|
|
110
|
+
note over R,RW: Phase 1: Initiate Shutdown
|
|
111
|
+
|
|
112
|
+
alt graceful shutdown
|
|
113
|
+
R->>P: ToServerStopping
|
|
114
|
+
P->>RW: Forward (ToServerStopping)
|
|
115
|
+
else forced stop
|
|
116
|
+
RW->>RW: receive Stop signal
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
note over R,RW: Phase 2: Drain Runner
|
|
120
|
+
|
|
121
|
+
note over RW: handle_stopping
|
|
122
|
+
note over RW: set state.draining = true
|
|
123
|
+
note over RW: ClearDb activity (update_state = Draining)
|
|
124
|
+
note over RW: remove from allocation indexes
|
|
125
|
+
note over RW: set drain_ts, expired_ts
|
|
126
|
+
|
|
127
|
+
note over RW: FetchRemainingActors activity
|
|
128
|
+
loop for each actor
|
|
129
|
+
RW->>A: GoingAway signal
|
|
130
|
+
note over A: actor workflows begin stopping
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
note over R,RW: Phase 3: Wait for Actors
|
|
134
|
+
|
|
135
|
+
note over R: waitForActorsToStop (max 120s)
|
|
136
|
+
loop check every 100ms
|
|
137
|
+
alt all actors stopped
|
|
138
|
+
note over R: continue shutdown
|
|
139
|
+
else websocket closed
|
|
140
|
+
note over R: force continue shutdown
|
|
141
|
+
else timeout reached
|
|
142
|
+
note over R: force continue shutdown
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
note over R,RW: Phase 4: Close WebSocket
|
|
147
|
+
|
|
148
|
+
note over R: send ToServerStopping (if not sent)
|
|
149
|
+
R->>P: WebSocket close (code=1000, reason=pegboard.runner_shutdown)
|
|
150
|
+
note over R: clear ping interval
|
|
151
|
+
note over R: clear ack interval
|
|
152
|
+
note over R: tunnel.shutdown
|
|
153
|
+
|
|
154
|
+
note over R: config.onShutdown callback
|
|
155
|
+
|
|
156
|
+
note over R,RW: Phase 5: Complete Workflow
|
|
157
|
+
|
|
158
|
+
note over RW: workflow exits drain loop after runner_lost_threshold
|
|
159
|
+
|
|
160
|
+
note over RW: ClearDb activity (update_state = Stopped)
|
|
161
|
+
note over RW: remove from active indexes
|
|
162
|
+
note over RW: set stop_ts
|
|
163
|
+
|
|
164
|
+
note over RW: FetchRemainingActors activity
|
|
165
|
+
loop for each remaining actor
|
|
166
|
+
RW->>A: Lost signal
|
|
167
|
+
note over A: reschedule actors if needed
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
RW->>P: ToClientClose
|
|
171
|
+
note over RW: workflow complete
|
|
172
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Generating SDKs
|
|
2
|
+
|
|
3
|
+
To make sure the openapi spec is up to date, run `cargo check -p rivet-dump-openapi`
|
|
4
|
+
|
|
5
|
+
Use `./scripts/fern/gen.sh` to generate the SDKs, which will be outputted under `sdks/api`
|
|
6
|
+
|
|
7
|
+
# Endpoints
|
|
8
|
+
|
|
9
|
+
A current list of API endpoints can be found at `packages/core/api-public/src/router.rs` or in the `out/openapi.json` file.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Test Dependencies
|
|
2
|
+
|
|
3
|
+
The `rivet-test-deps` package provides isolated test environments with configurable database and pub/sub backends.
|
|
4
|
+
|
|
5
|
+
## Configuration
|
|
6
|
+
|
|
7
|
+
Configure backends via environment variables:
|
|
8
|
+
|
|
9
|
+
- `RIVET_TEST_DATABASE`: Choose database backend
|
|
10
|
+
- `foundationdb` - Runs FoundationDB in Docker
|
|
11
|
+
- `postgres` - PostgreSQL in Docker
|
|
12
|
+
- `filesystem` - RocksDB with temp directory (default)
|
|
13
|
+
|
|
14
|
+
- `RIVET_TEST_PUBSUB`: Choose pub/sub backend
|
|
15
|
+
- `nats` - Runs NATS in Docker
|
|
16
|
+
- `postgres_notify` - PostgreSQL in Docker
|
|
17
|
+
- `memory` - In-memory channels (default)
|
|
18
|
+
|
|
19
|
+
- `RUST_LOG`: Enable debug logs to see container lifecycle details
|
|
20
|
+
- For example, `RUST_LOG=debug` will enable more verbose logs
|
|
21
|
+
|
|
22
|
+
## How It Works
|
|
23
|
+
|
|
24
|
+
1. **Port Selection**: Automatically picks unused ports for all services
|
|
25
|
+
2. **Container Management**:
|
|
26
|
+
- Starts Docker containers for services that require them
|
|
27
|
+
- Each test gets unique container names using UUIDs
|
|
28
|
+
- Containers are automatically cleaned up on drop
|
|
29
|
+
3. **Config Generation**: Creates a complete Rivet config with the selected backends
|
|
30
|
+
4. **Isolation**: Each test instance gets isolated resources (unique channels, temp dirs, containers)
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
```rust
|
|
35
|
+
let deps = TestDeps::new().await?;
|
|
36
|
+
// Use deps.pools() and deps.config() for your tests
|
|
37
|
+
// Containers are cleaned up automatically when deps is dropped
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
For multi-datacenter tests:
|
|
41
|
+
```rust
|
|
42
|
+
let deps = TestDeps::new_multi(&[1, 2, 3]).await?;
|
|
43
|
+
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Embedded KV
|
|
2
|
+
|
|
3
|
+
## Goals
|
|
4
|
+
|
|
5
|
+
- Embedded (no need for multi-process)
|
|
6
|
+
- Similarity to FDB in transacations
|
|
7
|
+
- Supports high write throughput
|
|
8
|
+
|
|
9
|
+
## Decision
|
|
10
|
+
|
|
11
|
+
Chose RocksDB because:
|
|
12
|
+
|
|
13
|
+
- It's stable & boring
|
|
14
|
+
- Supports high write throughput
|
|
15
|
+
|
|
16
|
+
Nice to haves:
|
|
17
|
+
|
|
18
|
+
- Better compression on disk
|
|
19
|
+
|
|
20
|
+
## Evaluation
|
|
21
|
+
|
|
22
|
+
### RocksDB
|
|
23
|
+
|
|
24
|
+
Uses LSM trees. Requires backgound compaction. Has a lot of overhead to work like a "real" database.
|
|
25
|
+
|
|
26
|
+
Pros:
|
|
27
|
+
|
|
28
|
+
- Supports a WAL for logging & buffering writes
|
|
29
|
+
|
|
30
|
+
Cons:
|
|
31
|
+
|
|
32
|
+
- Significantly more complicated
|
|
33
|
+
- Overhead of background threads managing compaction
|
|
34
|
+
- Does not provide native MVCC + conflict ranges, we must re-implement this ourselves
|
|
35
|
+
|
|
36
|
+
### LMDB
|
|
37
|
+
|
|
38
|
+
Uses B+ tree for storage. mmaps database.
|
|
39
|
+
|
|
40
|
+
**The critical downside of LMDB is that performance suffers under write-heavy workoads from (a) single writer locks and (b) uses mmap instead of buffering writes.**
|
|
41
|
+
|
|
42
|
+
Pros:
|
|
43
|
+
|
|
44
|
+
- Simple implementation
|
|
45
|
+
- Very little overhead
|
|
46
|
+
|
|
47
|
+
Cons:
|
|
48
|
+
|
|
49
|
+
- No compaction
|
|
50
|
+
- Single writer lock
|
|
51
|
+
- Transaction commits each have an fsync, while RocksDB can optimize with a WAL + batching writes
|
|
52
|
+
- Uses pages with mmap which is slower than using a WAL + batching writes
|
|
53
|
+
- Does not work well with small writes since it's copied at the page level (Rivet is almost all small writes)
|
|
54
|
+
|
|
55
|
+
### sled, redb, fjall
|
|
56
|
+
|
|
57
|
+
All three differe significantly, but the primary reason for disqualifying these is maturity. Sled claims to be "beta" and not mature yet, while redb and fjall claim to have a stable disk format.
|
|
58
|
+
|
|
59
|
+
**This is not a place we need to innovate, so it makes more sense to go with an established embedded KV.**
|
|
60
|
+
|
|
61
|
+
Pros:
|
|
62
|
+
|
|
63
|
+
- Rust-native
|
|
64
|
+
- Less potential issues with building & linking
|
|
65
|
+
- Theoretically faster compilation than RocksDB
|
|
66
|
+
|
|
67
|
+
### SQLite
|
|
68
|
+
|
|
69
|
+
This would be the simplest & most straightforward option in terms of support. FDB's pre-7.0 storage engine is based on the SQLite's B-tree implementation.
|
|
70
|
+
|
|
71
|
+
**SQLite provides overhead we don't need when options like RocksDB or LMDB exist.**
|
|
72
|
+
|
|
73
|
+
Pros:
|
|
74
|
+
|
|
75
|
+
- Widely supported, no issues with building it
|
|
76
|
+
- We already have a deep experience with SQLite
|
|
77
|
+
|
|
78
|
+
## Resources
|
|
79
|
+
|
|
80
|
+
- https://github.com/marvin-j97/rust-storage-bench
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Dynamic Tracing Configuration
|
|
2
|
+
|
|
3
|
+
Dynamically reconfigure log levels and OpenTelemetry sampling for all running services without restart.
|
|
4
|
+
|
|
5
|
+
## Log Filter Configuration
|
|
6
|
+
|
|
7
|
+
Control which log messages are displayed by setting filter directives (similar to `RUST_LOG`).
|
|
8
|
+
|
|
9
|
+
**Set log filter to debug**
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
rivet-engine tracing config -f debug
|
|
13
|
+
|
|
14
|
+
# Or via HTTP API:
|
|
15
|
+
curl -X PUT http://localhost:6421/debug/tracing/config \
|
|
16
|
+
-H "Content-Type: application/json" \
|
|
17
|
+
-d '{"filter":"debug"}'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Debug a specific package**
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
rivet-engine tracing config -f "debug,rivet_api_peer=trace"
|
|
24
|
+
|
|
25
|
+
# Or via HTTP API:
|
|
26
|
+
curl -X PUT http://localhost:6421/debug/tracing/config \
|
|
27
|
+
-H "Content-Type: application/json" \
|
|
28
|
+
-d '{"filter":"debug,rivet_api_peer=trace"}'
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Reset log filter to defaults**
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
rivet-engine tracing config -f ""
|
|
35
|
+
|
|
36
|
+
# Or via HTTP API:
|
|
37
|
+
curl -X PUT http://localhost:6421/debug/tracing/config \
|
|
38
|
+
-H "Content-Type: application/json" \
|
|
39
|
+
-d '{"filter":null}'
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## OpenTelemetry Sampler Ratio
|
|
43
|
+
|
|
44
|
+
Control what percentage of traces are sampled and sent to the OpenTelemetry collector.
|
|
45
|
+
|
|
46
|
+
**Set sampler ratio to 10%**
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
rivet-engine tracing config -s 0.1
|
|
50
|
+
|
|
51
|
+
# Or via HTTP API:
|
|
52
|
+
curl -X PUT http://localhost:6421/debug/tracing/config \
|
|
53
|
+
-H "Content-Type: application/json" \
|
|
54
|
+
-d '{"sampler_ratio":0.1}'
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Set sampler ratio to 100% (capture all traces)**
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
rivet-engine tracing config -s 1.0
|
|
61
|
+
|
|
62
|
+
# Or via HTTP API:
|
|
63
|
+
curl -X PUT http://localhost:6421/debug/tracing/config \
|
|
64
|
+
-H "Content-Type: application/json" \
|
|
65
|
+
-d '{"sampler_ratio":1.0}'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Reset sampler ratio to default**
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
rivet-engine tracing config -s 0.001
|
|
72
|
+
|
|
73
|
+
# Or via HTTP API:
|
|
74
|
+
curl -X PUT http://localhost:6421/debug/tracing/config \
|
|
75
|
+
-H "Content-Type: application/json" \
|
|
76
|
+
-d '{"sampler_ratio":null}'
|
|
77
|
+
```
|
|
78
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
. linguist-generated=true
|