# AWS CDK vs Pulumi

| Attribute | AWS CDK | Pulumi |
|---|---|---|
| **Vioscale score** | 65 (76% (high)) | 69.2 (75% (high)) |
| activity.commits_last_30d | 100 | 100 |
| adoption.dependent_repos | 4,665 | 2,143 |
| adoption.github_stars | 12,876 | 25,610 |
| adoption.package_downloads_weekly | 1,691,427 | 1,787,798 |
| deployment.options | `{"self_hosted":true}` | `{"cloud":true}` |
| description.long | A development framework that lets you define AWS cloud resources and infrastructure using standard programming languages like TypeScript, Python, Java, .NET, and Go. CDK compiles your code into CloudFormation templates for deployment. | A cloud infrastructure management platform that lets teams define and deploy resources across multiple cloud providers using standard programming languages. Includes state management, policy enforcement, and tooling for discovering and migrating existing infrastructure. |
| features.capabilities | `{"language":"TypeScript, Python, Java, .NET, Go","paradigm":"general_language","multicloud":false,"policy_as_code":true,"drift_detection":true,"import_existing":true,"state_management":"vendor_managed","open_source_engine":true,"provider_ecosystem":true,"managed_saas_offering":false}` | `{"hosting":"cloud","language":"TypeScript, Python, Go, C#, Java, YAML","paradigm":"general_language","multicloud":true,"policy_as_code":true,"drift_detection":true,"import_existing":true,"state_management":"vendor_managed","open_source_engine":true,"provider_ecosystem":true,"gitops_reconciliation":false,"managed_saas_offering":true}` |
| integrations.count | 5 | 6 |
| integrations.list | `[{"name":"AWS CloudFormation"},{"name":"AWS Lambda"},{"name":"AWS SNS"},{"name":"AWS Step Functions"},{"name":"AWS EC2"}]` | `[{"name":"AWS"},{"name":"Azure"},{"name":"Google Cloud"},{"name":"Terraform"},{"name":"CloudFormation"},{"name":"Azure Resource Manager"}]` |
| language.primary | TypeScript | Go |
| license.spdx | Apache-2.0 | Apache-2.0 |
| market.availability | `{"hqCountry":"US","primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | `{"primaryMarkets":["US"],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` |
| platform.support | `{"cli":true}` | `{"cli":true,"web":true}` |
| pricing | `{"type":"open_source","freeTier":true,"sourceUrl":"https://aws.amazon.com/pricing/?nc2=h_pr_hub","retrievedAt":"2026-08-14T21:53:47.459Z"}` | `{"type":"hybrid","plans":[{"free":false,"name":"Team Edition","summary":"Per resource-hour and per deployment-minute charges. Free credits included.","description":"Team edition with per-resource-hour and per-deployment-minute charges","contactSales":false,"includedLimits":{"free_credits":"included"}}],"summary":"Team Edition with per-resource-hour and deployment-minute metering. Bulk discounts available for >$20k/year spend. Free credits included.","currency":"USD","freeTier":true,"sourceUrl":"https://www.pulumi.com/blog/pricing-calculator-blog/","retrievedAt":"2026-08-14T21:36:29.976Z","billingPeriods":["month"]}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | commercial |
| pricing.price_level | free | low |
| pricing.transparent | yes | yes |
| release.cadence_days | 4 | 5 |
| release.history | `[{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.266.0","date":"2026-08-19T19:02:29Z","type":"stable","version":"v2.266.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.265.0","date":"2026-08-13T19:48:20Z","type":"stable","version":"v2.265.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.264.0","date":"2026-08-10T18:02:37Z","type":"stable","version":"v2.264.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.263.0","date":"2026-07-31T16:57:22Z","type":"stable","version":"v2.263.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.262.2","date":"2026-07-29T14:24:40Z","type":"stable","version":"v2.262.2"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.262.1","date":"2026-07-24T14:54:56Z","type":"stable","version":"v2.262.1"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.262.0","date":"2026-07-22T20:53:52Z","type":"stable","version":"v2.262.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.261.0","date":"2026-07-02T16:42:15Z","type":"stable","version":"v2.261.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.260.0","date":"2026-06-16T23:45:38Z","type":"stable","version":"v2.260.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.259.0","date":"2026-06-12T09:53:11Z","type":"stable","version":"v2.259.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.258.1","date":"2026-06-09T09:30:30Z","type":"stable","version":"v2.258.1"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.258.0","date":"2026-06-04T20:43:31Z","type":"stable","version":"v2.258.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.257.0","date":"2026-05-21T20:24:32Z","type":"stable","version":"v2.257.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.256.1","date":"2026-05-20T15:48:47Z","type":"stable","version":"v2.256.1"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.256.0","date":"2026-05-19T23:02:53Z","type":"stable","version":"v2.256.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.255.0","date":"2026-05-19T11:26:34Z","type":"stable","version":"v2.255.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.254.0","date":"2026-05-13T22:07:55Z","type":"stable","version":"v2.254.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.253.1","date":"2026-05-08T16:13:36Z","type":"stable","version":"v2.253.1"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.253.0","date":"2026-05-06T17:51:15Z","type":"stable","version":"v2.253.0"},{"url":"https://github.com/aws/aws-cdk/releases/tag/v2.252.0","date":"2026-04-30T12:40:15Z","type":"stable","version":"v2.252.0"}]` | `[{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.259.0","date":"2026-08-19T20:04:11Z","type":"stable","version":"v3.259.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.258.0","date":"2026-08-17T19:04:32Z","type":"stable","version":"v3.258.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.257.0","date":"2026-08-13T14:42:12Z","type":"stable","version":"v3.257.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.256.0","date":"2026-08-04T19:34:54Z","type":"stable","version":"v3.256.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.255.0","date":"2026-07-28T13:37:19Z","type":"stable","version":"v3.255.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.254.0","date":"2026-07-23T15:10:53Z","type":"stable","version":"v3.254.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.253.0","date":"2026-07-14T11:30:57Z","type":"stable","version":"v3.253.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.252.0","date":"2026-07-13T12:34:06Z","type":"stable","version":"v3.252.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.251.0","date":"2026-07-08T12:41:08Z","type":"stable","version":"v3.251.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.250.0","date":"2026-07-02T00:47:36Z","type":"stable","version":"v3.250.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.249.0","date":"2026-07-01T14:20:03Z","type":"stable","version":"v3.249.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.248.0","date":"2026-06-24T14:50:37Z","type":"stable","version":"v3.248.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.247.0","date":"2026-06-18T14:11:01Z","type":"stable","version":"v3.247.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.246.0","date":"2026-06-11T19:51:29Z","type":"stable","version":"v3.246.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.245.0","date":"2026-06-04T08:53:06Z","type":"stable","version":"v3.245.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.244.0","date":"2026-05-28T18:13:39Z","type":"stable","version":"v3.244.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.243.0","date":"2026-05-22T21:38:01Z","type":"stable","version":"v3.243.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.242.0","date":"2026-05-19T12:39:19Z","type":"stable","version":"v3.242.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.241.0","date":"2026-05-18T16:31:27Z","type":"stable","version":"v3.241.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.239.0","date":"2026-05-14T12:56:20Z","type":"stable","version":"v3.239.0"}]` |
| reliability.status_page | yes | yes |
| security.disclosure_policy | yes | yes |
| security.hipaa | yes | - |
| security.pci | yes | - |
| security.scorecard | 5.9 | 7.2 |
| security.soc2 | - | yes |
| security.vulnerabilities | `{"count":8,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=aws-cdk-lib&per_page=100","last_12m":3,"max_severity":"HIGH"}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=%40pulumi%2Fpulumi&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Infrastructure as Code Tools)

| Capability | AWS CDK | Pulumi |
|---|:--:|:--:|
| **Core** |  |  |
| Paradigm | General language | General language |
| Language | TypeScript, Python, Java, .NET, Go | TypeScript, Python, Go, C#, Java, YAML |
| **Portability** |  |  |
| Multicloud / cloud-agnostic | ✗ | ✓ |
| **Architecture** |  |  |
| State management | Vendor-managed | Vendor-managed |
| **Extensibility** |  |  |
| Pluggable provider ecosystem | ✓ | ✓ |
| **Governance** |  |  |
| Policy as code | ✓ | ✓ |
| **Ops** |  |  |
| Drift detection | ✓ | ✓ |
| GitOps continuous reconciliation | - | ✗ |
| **Deployment** |  |  |
| Managed SaaS offering | ✗ | ✓ |
| Hosting | - | Cloud only |
| **Adoption** |  |  |
| Import existing resources | ✓ | ✓ |
| **Licensing** |  |  |
| Open-source engine | ✓ | ✓ |
| **Ecosystem** |  |  |
| CNCF maturity | - | - |

*Source: Vioscale. Generated 2026-09-01T15:18:58.676Z. "-" = undocumented, not absent.*
