pulumi/pulumi
Pulumi
Pulumi is an open-source infrastructure-as-code (IaC) platform that lets you describe cloud resources in general-purpose programming languages — TypeScript/JavaScript, Python, Go, .NET (C#/F#/VB.NET), Java, and YAML — instead of bespoke DSLs. This repository (pulumi/pulumi) holds the pulumi command-line interface, the deployment engine that drives every preview, update, refresh, and destroy, the gRPC protocol that wires everything together, and the core SDKs that user programs link against.
What lives in this repo
The Pulumi platform is split across many repositories — provider implementations (e.g. pulumi-aws, pulumi-azure-native), templates, policy packs, and language-specific tooling all live in their own repos. pulumi/pulumi is the core of the system:
- The
pulumiCLI (pkg/cmd/pulumi) - The deployment engine (
pkg/engine,pkg/resource/deploy) - State storage backends (
pkg/backend/diy,pkg/backend/httpstate) - gRPC protocol definitions (
proto/pulumi/*.proto) - Core language SDKs (
sdk/go,sdk/nodejs,sdk/python,sdk/pcl) - Language hosts that bridge the engine to user programs (
sdk/<lang>/cmd/pulumi-language-<lang>) - Code generation for SDKs and program conversion (
pkg/codegen) - Pulumi Cloud Language (PCL) — the intermediate representation used by
pulumi convert(sdk/pcl)
If a feature isn't tied to a specific cloud, it most likely lives here.
Audience
This wiki is written for engineers who want to work on Pulumi (the platform), not engineers who want to use Pulumi to deploy infrastructure. For end-user documentation see pulumi.com/docs.
Quick links
- Architecture — how the CLI, engine, language hosts and providers fit together.
- Getting started — clone, build, test, and run the CLI from source.
- Glossary — the vocabulary used throughout the codebase.
- Apps: CLI — the entry-point binary and its commands.
- Systems: deployment engine — the heart of
pulumi up. - Packages: language SDKs — what user programs import.
- Background: design decisions — why the system looks this way.
Status snapshot
- Current SDK version: 3.234.0 (see
sdk/.version) - Released versions: 1,400+ git tags, weekly cadence
- Languages of the platform itself: Go (engine, CLI, codegen), TypeScript (Node SDK), Python (Python SDK), some C/JS for protobuf glue
- Public surface: the
pulumiCLI, the gRPC protocol inproto/, and the language SDKs
Conventions used in this wiki
- Source-file references use full repo-relative paths in backticks (e.g.
pkg/cmd/pulumi/pulumi.go) so they render as clickable links. - Mermaid diagrams illustrate architectural relationships, request flows, and state machines.
- Each domain page lists active contributors derived from
git logon the default branch (master), excluding[bot]accounts. These are people you can ping if you have questions.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.