pulumi/docs/architecture/languages.md

1.7 KiB

(languages)= (language-hosts)=

Language hosts

Language hosts, or language runtimes, are the means by which Pulumi is able to support a variety of programming languages. Officially, the term "language host" refers to the combination of two parts:

  • A runtime, which is a Pulumi plugin that exposes the ability to execute programs written in a particular language according to a standardized gRPC interface. The plugin will be named pulumi-language-<language> (e.g. pulumi-language-nodejs for NodeJS, or pulumi-language-python for Python).
  • An SDK, which is a set of libraries that provide the necessary abstractions and utilities for writing Pulumi programs in that language (e.g. @pulumi/pulumi in NodeJS, or pulumi in Python).

Often however, the term "language host" is used to refer to the runtime alone. Aside from providing the ability to programs, the runtime also supports a number of other operations:

  • Code generation methods enable callers to generate both SDKs () and programs () in the language.
  • Query endpoints allow callers to calculate the set of language-specific dependencies () or Pulumi plugins () that might be required by a program.
  • The method allows callers to package up bundles of code written in the language into a format suitable for consumption by other code (for instance, packaging an SDK for use as a dependency, or packaging a program for execution).