Gestalt Rust SDK
Use the Rust SDK to build compiled Gestalt providers with typed routers,
serde input and output types, and schema-derived catalog metadata.
The package is published to crates.io as gestalt-sdk, while Rust code imports
the crate as gestalt.
Quick start
Register typed operations on a router. The router dispatches requests and emits
catalog metadata for gestaltd.
use JsonSchema;
use ;
use Arc;
;
export_provider!;
Fields are required unless they are modeled as Option<T> or have a serde
default. Use schemars attributes for catalog descriptions.
Provider surfaces
Use Provider, Operation, Router, and export_provider! for integration
providers. Use the other provider traits and export macros when you are serving
a host-service backend.
| Trait | Export macro | Use it when you want to serve |
|---|---|---|
AuthenticationProvider |
export_authentication_provider! |
Login flows. |
CacheProvider |
export_cache_provider! |
Plugin-bound cache storage. |
S3Provider |
export_s3_provider! |
S3-compatible object storage. |
SecretsProvider |
export_secrets_provider! |
Secret resolution. |
WorkflowProvider |
export_workflow_provider! |
Workflow runs, schedules, and event triggers. |
AgentProvider |
export_agent_provider! |
Agent sessions, turns, events, interactions, and capabilities. |
PluginRuntimeProvider |
export_plugin_runtime_provider! |
Hosted plugin execution backends. |
The crate also exposes clients for sibling host services, including Cache,
S3, WorkflowHost, WorkflowManager, AgentHost, AgentManager, and
PluginInvoker.
Codegen strategy
Bindings are checked into
src/generated
so crate consumers do not need a protobuf toolchain when building
gestalt-sdk.
Maintainers regenerate them from the shared proto definitions in
sdk/proto
with the Buf template in
sdk/proto/buf.rust.gen.yaml.
Use the same Buf CLI version as CI for deterministic remote-plugin output.
To regenerate the bindings:
Public surface
The crate keeps generated bindings behind a higher-level authoring API:
Provider,Request,Response, andok(...)model integration providers.RouterandOperationregister typed operations and derive catalog metadata fromserdeandschemars.AuthenticationProvider,CacheProvider,S3Provider,SecretsProvider,WorkflowProvider,AgentProvider, andPluginRuntimeProvidermodel executable provider runtimes.Cache,S3,WorkflowHost,WorkflowManager,AgentHost,AgentManager, andPluginInvokercall sibling host services.RuntimeMetadatalets provider runtimes describe their display metadata and version.runtimecontains entrypoints for serving provider surfaces over the Unix socket exposed bygestaltd.proto::v1exposes generated protocol bindings for low-level integration work.
Package layout
This package intentionally lives outside the existing gestalt/ Cargo
workspace so the SDK can evolve independently of the CLI crate graph.