Pulumi runtimes and Terraform migration for Python and TypeScript
Pulumi 3.178.0 enables direct consumption of Terraform modules, allowing teams to migrate without full rewrites. The platform also introduces Bun runtime support, offering 4x faster startup times than Node.js for TypeScript developers.
Pulumi 3.227.0 supports the Bun runtime. Developers set runtime: bun in Pulumi.yaml to execute programs without a Node.js installation. Bun, which Jarred Sumner first previewed in May 2021 and released as version 1.0 in September 2023, delivers 4x faster startup times, providing 5 – 15ms compared to 60 – 120ms for Node.js. It also performs 6 – 35x faster package installs. Bun bundles a package manager, bundler, and test runner into a single binary built with the Zig programming language. This runtime uses the JavaScriptCore engine rather than the V8 engine used by Node.js and Deno. Anthropic acquired Bun and uses it for deploying Claude Code. This runtime allows native TypeScript execution without requiring a separate compile step or ts-node. Top-level await works at the module level. This simplifies program structure.
However, Bun does not support Pulumi’s magic lambdas or dynamic providers. These features rely on function serialization that depends on Node.js v8 and inspector modules that Bun lacks. Teams using these features must remain on the Node.js runtime. You can still use Bun for faster package management by setting packagemanager: bun in your Node.js configuration.
Pulumi supports Python, TypeScript, JavaScript, Go, C#, Java, F#, and YAML. The Python SDK provides different performance results than the Go SDK. In a mid-2026 benchmark, the Python SDK was the slowest to plan and apply. It detected drift faster than its competitors. Pulumi is fast.
Pulumi 3.178.0 allows direct consumption of Terraform modules. This preview feature lets TypeScript, Python, Go, C#, or Java programs use existing .tf modules as native Pulumi components. It wraps the Terraform execution engine using the terraform-module provider. This capability is available via the pulumi package add terraform-module command. You can bridge any Terraform provider into Pulumi. This helps teams avoid a full rewrite when migrating.
Pulumi’s 1,800 providers trail the 4,800 providers in the Terraform Registry. Terraform’s ecosystem remains the largest. Terraform modules have insufficient metadata to identify every output type. You must override these inferred types manually.
Teams with existing Node.js projects migrate by updating the runtime field in Pulumi.yaml, adjusting tsconfig.json to use module: "Preserve" and moduleResolution: "bundler", and adding "type": "module" to package.json to opt into ESM. Anton Tayanovskyy, a Pulumi engineer, said the feature addresses challenges for users with deep investments in Terraform modules. Dipali Patel called the announcement a turning point. Do you need to rewrite every module before you start?
Pulumi Cloud manages state and secrets. The Individual tier is free and includes 500 deployment minutes per month. Users can store state in AWS S3, Microsoft Azure Blob Storage, or Google Cloud Storage. Pulumi Cloud uses Pulumi Credits for management, where each credit costs $0.0005. The Team tier provides 150,000 free credits monthly and costs $150 per month.
| Tier | Key Features | Pricing |
|---|---|---|
| Individual | Unlimited stacks and deployments | Free |
| Team | 10 users, 3000 deploy minutes | $150/month |
| Enterprise | RBAC, SAML/SSO, 12×5 support | $32,850/year (AWS) |
| Business Critical | Self-hosting, 24×7 support | $50,000/year (Azure) |
Pulumi’s Python SDK is the slowest to plan and apply. It detected drift faster than its competitors. The Context API, available in preview for Enterprise and Business Critical editions, connects infrastructure data into a single graph. Pulumi Neo uses this API to answer questions about stack impacts. The API uses JSON documents with clauses like anchor, traverse, and return to query the graph. These queries allow tools like Claude Code, Cursor, or Codex to learn about the infrastructure. The schema endpoint returns a Markdown document primer covering the full query grammar and examples.
Teams must migrate. The Python SDK is slow.