Application surfaces

One product model. Every protocol.

Vadyl's API surface is not hand-maintained. REST routes, GraphQL SDL with executor, gRPC proto contracts, OpenAPI specs, MCP tool listings, typed SDKs in five languages — all compiled from the same product model and canonical descriptor graph. Change Customer, Order, or Subscription; every projection regenerates atomically. There is no client / server drift.

One descriptor graph. Every projection.

Compiled, not authored. Versioned end-to-end.

REST

Idiomatic routes per entity. Operation dispatcher routes through the canonical IApiOperationDispatcher — same authority as GraphQL, gRPC, MCP, CLI. Capability grants gate every endpoint.

GraphQL

SDL compiled from the same descriptor graph. Lightweight executor translates field selections to canonical CRUD. Same access enforcement, same masking, same expansion as REST.

gRPC

Proto contracts compiled from canonical types. Strongly-typed service definitions. Tool support across every gRPC ecosystem — protoc, buf, grpcurl.

OpenAPI

Generated alongside REST. Tooling-compatible (Swagger UI, Redocly, Stoplight, Postman). The spec moves atomically with the routes.

MCP

Canonical projection of the same dispatcher. tools/list filtered by capability grants. tools/call routes through the IApiOperationDispatcher. No second authority.

Typed SDKs

TypeScript, Python, C#, Go, Rust today. Java, Ruby, Kotlin, Swift, PHP planned. Each SDK embeds a manifest with seven version dimensions; generated-format mismatch fails fast at runtime.

Per-language SDK details

Five idiomatic projections today. Five more queued.

TypeScript

@vadyl/sdk via npm. Internal runtime SDK for in-process authoring. MonacoContractProjectionBridge re-injects extraLibs on contract stamp advance — types stay current as your model evolves.

Python

vadyl via pip. Async-first, dataclass-friendly. Same canonical operations. Same auth. Same SDK manifest with version provenance.

C#

Vadyl.Client via NuGet. Strongly-typed, .NET-idiomatic. Async / Task throughout. Manifest embedded as a static class for design-time inspection.

Go

go.vadyl.dev/sdk. Generated structs, idiomatic context.Context, error returns. No reflection on the hot path.

Rust

vadyl crate. Async / Tokio. Strongly-typed Result returns, derived serde where appropriate.

Future peers

Java (Maven), Ruby (Gem), Kotlin (Maven), Swift (SPM), PHP (Composer) — all peer projections from the same canonical contract backbone.

1
Descriptor graph

Drives every projection

5+
Languages today

TS · Python · C# · Go · Rust

7D
SDK manifest

Embedded version provenance

0
Drift between client and server

Compiled, not authored

One product model. Compile every API.

Define the entity, workflow, permission, or agent action once. Vadyl emits REST, GraphQL, gRPC, OpenAPI, MCP, and typed SDKs in five languages. The product model is the source of truth — every client tracks it.