Pulumi now supports Bun as a fully-fledged runtime for TypeScript programs, not just as a package manager. Setting `runtime: bun` in `Pulumi.yaml` lets Bun execute Pulumi programs directly with no Node.js required, enabling native TypeScript support, faster package installs, and top-level await via ESM. The post covers how to create new Bun-based projects, migrate existing Node.js Pulumi projects (including tsconfig.json updates and ESM migration), and clarifies the difference between using Bun as a runtime vs. as a package manager only. Known limitations include lack of support for callback functions (magic lambdas) and dynamic providers, which still require Node.js. Available in Pulumi 3.227.0.
Table of contents
Why Bun?Getting startedConverting existing Node.js projectsBun as runtime vs. Bun as package managerKnown limitationsStart using Bun with PulumiSort: