For an IaC tool using general-purpose languages, the first results are hashicorp/terraform-cdk (HashiCorp's Terraform CDK is an IaC framework that lets you define cloud resources in TypeScript, Python, C, Java, and Go, generating Terraform configurations for multi-cloud provisioning with state management and reusable constructs — exactly what you're looking for), pulumi/pulumi (Pulumi lets you define and manage cloud infrastructure using familiar general-purpose languages like TypeScript, Python, Go, and C, and supports multi-cloud orchestration, state management, and reusable components — exactly what this search asks for) and encoredev/encore (Encore is an infrastructure-as-code platform that lets you define cloud resources, databases, and messaging directly in application code using Go or TypeScript, with automatic multi-cloud deployment and state management, making it a comprehensive fit for programmatic IaC). cloudtools/troposphere and awslabs/cdk8s round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Tools and frameworks for provisioning and managing cloud resources using general-purpose programming languages like TypeScript or Python.
The Terraform Cloud Development Kit is an infrastructure as code framework that allows cloud resources to be defined using general-purpose programming languages. It functions as a configuration synthesizer, translating high-level programming logic and provider schemas into JSON configuration files that are executed by the Terraform engine to provision infrastructure. The framework provides a multi-language infrastructure library with the ability to automatically generate language-specific classes from provider schemas. It enables the creation of reusable constructs, allowing complex resource
HashiCorp's Terraform CDK is an IaC framework that lets you define cloud resources in TypeScript, Python, C#, Java, and Go, generating Terraform configurations for multi-cloud provisioning with state management and reusable constructs — exactly what you're looking for.
Pulumi is an infrastructure-as-code framework that enables the definition, deployment, and management of cloud resources using general-purpose programming languages. It functions as a cloud resource orchestrator that coordinates the lifecycle of heterogeneous infrastructure by executing code to construct dependency graphs and reconciling the desired state against actual cloud environments. The platform distinguishes itself through a language-host runtime bridge that allows developers to use standard programming languages to define infrastructure, rather than relying solely on domain-specific
Pulumi lets you define and manage cloud infrastructure using familiar general-purpose languages like TypeScript, Python, Go, and C#, and supports multi-cloud orchestration, state management, and reusable components — exactly what this search asks for.
Encore is a distributed systems framework designed to unify backend development, infrastructure provisioning, and observability. It functions as an infrastructure-as-code platform that allows developers to define cloud resources, databases, and messaging topics directly within their application code. By analyzing these declarations at compile-time, the system automatically manages the deployment of cloud resources and security policies, ensuring parity between local development and production environments. The platform distinguishes itself through its integrated development experience, which
Encore is an infrastructure-as-code platform that lets you define cloud resources, databases, and messaging directly in application code using Go or TypeScript, with automatic multi-cloud deployment and state management, making it a comprehensive fit for programmatic IaC.
Troposphere is a Python library for programmatically creating and validating infrastructure as code templates. It serves as a generator for AWS CloudFormation and OpenStack templates, allowing cloud resources to be defined as objects within a general purpose programming language rather than through raw JSON or YAML markup. The project focuses on cloud resource validation by checking property names and data types during the template construction process. This system identifies configuration errors and missing required fields before the infrastructure is exported for deployment. The library co
Troposphere lets you define AWS and OpenStack resources in Python, fitting the general-purpose language requirement, though it produces templates rather than handling state management or multi-cloud provisioning directly.
cdk8s is an infrastructure as code framework and configuration tool used to define Kubernetes applications using general-purpose programming languages. It transforms high-level, object-oriented code into the standard YAML manifests required for deployment to any Kubernetes cluster. The framework focuses on the creation of reusable abstractions and hierarchical constructs. By utilizing a system of nested components, it allows for the encapsulation of complex configurations into programmable interfaces. The tool provides a workflow for programmable Kubernetes configuration, enabling the genera
cdk8s is an Infrastructure as Code framework that lets you define Kubernetes resources using general-purpose programming languages like TypeScript, Python, or Go, matching your core requirement for avoiding DSLs; it supports declarative definitions and reusable components, but is limited to Kubernetes and does not manage state or cover other cloud providers natively.
OpenTofu is a declarative infrastructure orchestrator that automates the provisioning and management of cloud resources. It functions as a platform-agnostic interface, allowing users to define their desired environment state in configuration files, which the system then reconciles against live infrastructure to calculate and execute necessary updates. The project utilizes a graph-based execution engine to determine the optimal sequence for resource operations, enabling the parallel processing of independent components to reduce deployment times. To support complex, multi-platform environments
OpenTofu is a declarative infrastructure orchestrator, but it uses a domain-specific language (HCL) for definitions, not a general-purpose programming language as requested.
Terraform is a declarative infrastructure-as-code tool designed to manage the lifecycle of cloud and on-premises resources. It functions as a workflow engine that reconciles a defined desired state against real-world infrastructure, using a persistent state-tracking layer to maintain consistency and visibility across distributed environments. By mapping infrastructure components into a directed acyclic graph, the system calculates the optimal order for provisioning, updating, or destroying resources. The platform is distinguished by its extensible plugin-based architecture, which decouples co
Terraform is a leading infrastructure-as-code tool, but it uses its own DSL (HCL) rather than a general-purpose programming language, so it does not match the visitor's requirement for defining resources with a language like Python or TypeScript.
SkyPilot is a multi-cloud AI orchestrator and distributed task scheduler designed to launch and manage AI workloads across various cloud providers, Kubernetes, and Slurm clusters. It functions as an infrastructure-as-code framework that uses declarative files to define resource requirements and setup commands for consistent execution across different environments. The project differentiates itself through automated cost optimization, selecting the most affordable GPU or TPU hardware and managing spot instances to reduce expenses. It also provides a remote development environment that bridges
SkyPilot is an AI workload orchestrator that uses declarative YAML files rather than a general-purpose programming language, so it does not match the requirement for defining cloud resources programmatically as an Infrastructure as Code tool.
This project is an infrastructure as code tool designed to automate the lifecycle management of Amazon Web Services resources. It functions as a cloud resource provisioner that enables users to define, version, and deploy infrastructure components through declarative configuration files. The system operates by reconciling the current state of a cloud environment against a desired configuration, calculating the necessary delta operations to achieve convergence. It utilizes a directed acyclic graph to resolve resource dependencies and determine the optimal execution order for changes, ensuring
This is a Terraform provider for AWS, not a standalone Infrastructure as Code tool that lets you define resources using a general-purpose programming language — it relies on Terraform's HCL DSL, which is the opposite of what this search is asking for.
Spinnaker is a multi-cloud continuous delivery platform designed to automate software releases and deployment pipelines across various public cloud providers and Kubernetes clusters. It functions as a cloud deployment orchestrator and infrastructure delivery tool, coordinating the promotion of software artifacts through multiple environments using visual workflows and directed acyclic graphs. The platform distinguishes itself with a dedicated canary analysis engine that compares performance metrics between new and stable software versions to automate release decisions. It utilizes cloud-agnos
Spinnaker is a multi-cloud continuous delivery platform for managing deployment pipelines, not a tool for defining cloud infrastructure programmatically with a general-purpose language—it focuses on release orchestration rather than resource provisioning.
Puppet is an infrastructure as code tool and configuration management framework used to automate the provisioning and state orchestration of server fleets. It functions as a declarative state orchestrator that manages server configurations and system settings to ensure consistency and reproducibility across a fleet of machines. The system utilizes a declarative state modeling approach and an idempotent execution engine to maintain configuration state and prevent environment drift. It employs resource-based abstraction and a client-server architecture to translate high-level specifications int
Puppet is a declarative infrastructure-as-code tool that uses its own domain-specific language, not a general-purpose programming language, so it does not match the visitor's requirement for defining cloud resources with a general-purpose language.
Atlantis is a GitOps deployment tool and infrastructure as code orchestrator that synchronizes cloud resources with a git repository using pull request comments. It serves as a policy-based infrastructure gate and automation system for Terraform, executing plans and applies directly from version control to coordinate deployments across multiple projects and environments. The system differentiates itself through a lock-based concurrency model that prevents simultaneous modifications to the same project or workspace. It features server-side policy validation to intercept plan outputs for compli
Atlantis is a GitOps automation layer for Terraform, not a tool that lets you define infrastructure in a general-purpose language — it orchestrates Terraform's HCL-based workflows, which is the opposite of the visitor's requirement to avoid DSLs.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| hashicorp/terraform-cdk | 5.1K | TypeScript | MPL-2.0 | |
| pulumi/pulumi | 24.8K | Go | apache-2.0 | |
| 12K |
| Go |
| MPL-2.0 |
| cloudtools/troposphere | 4.9K | Python | BSD-2-Clause |
| awslabs/cdk8s | 4.8K | JavaScript | Apache-2.0 |
| opentofu/opentofu | 29.2K | Go | MPL-2.0 |
| hashicorp/terraform | 48.7K | Go | NOASSERTION |
| skypilot-org/skypilot | 10.2K | Python | Apache-2.0 |
| hashicorp/terraform-provider-aws | 11K | Go | MPL-2.0 |
| spinnaker/spinnaker | 9.7K | Java | Apache-2.0 |