Gestalt Rust SDK
This directory contains the Rust SDK for Gestalt executable providers.
Current scope:
- standalone Cargo package published as
gestalt-sdk - library crate name remains
gestaltin Rust code - checked-in protobuf/gRPC bindings generated from
sdk/proto/v1/*.proto - maintainer-only stub generation via vendored
protoc - generated protocol bindings exposed via
proto::v1 - typed integration-provider authoring helpers for requests, responses, catalogs, and routing
- auth-provider, cache-provider, and secrets-provider traits that map to the shared executable runtime protocol
S3client helpers and theS3Providertrait for S3-compatible provider components- runtime servers for the integration, auth, cache, secrets, and S3 provider surfaces over the Unix socket exposed by
gestaltd export_provider!,export_auth_provider!,export_cache_provider!,export_secrets_provider!, andexport_s3_provider!macros for source builds that letgestaltdsynthesize the executable wrapper
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 a helper binary under tools/rust-sdk-codegen/,
which uses a vendored protoc.
To regenerate the bindings:
Public surface
The crate is intentionally small:
Provider,Request,Response, andok(...)model integration providersAuthProvider,BeginLoginRequest,BeginLoginResponse,CompleteLoginRequest, andAuthenticatedUsermodel auth providersCache,CacheProvider,CacheEntry, andCacheSetOptionsmodel cache clients and providersSecretsProvidermodels secrets providersS3,S3Provider, andgestalt::s3::*model S3-compatible object-store clients and providersRouterandOperationregister typed operations and derive catalog metadata fromserde+schemarsCatalogtypes expose explicit static or session-scoped catalogs when neededRuntimeMetadatalets any provider kind describe its runtime name/display metadata and versionruntimeruns the integration, auth, cache, secrets, or S3 gRPC servers, or writes the static catalog whenGESTALT_PLUGIN_WRITE_CATALOGis setexport_provider!exports__gestalt_serveand__gestalt_write_catalogfor integration providersexport_auth_provider!exports__gestalt_serve_authfor auth providersexport_cache_provider!exports__gestalt_serve_cachefor cache providersexport_secrets_provider!exports__gestalt_serve_secretsfor secrets providersexport_s3_provider!exports__gestalt_serve_s3for S3 providers
Package layout
This package intentionally lives outside the existing gestalt/ Cargo workspace so the SDK can evolve independently of the CLI crate graph.