(ruby): Ruby language bindings for AWS CDK
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 83
Description
### Describe the feature
Add **Ruby** as a first-class supported language for AWS CDK, alongside TypeScript, Python, Java, C#/.NET and Go. This would let Ruby-centric teams author CDK infrastructure in Ruby (e.g. `AWSCDK::S3::Bucket`) via a published `aws-cdk-lib` Ruby gem, instead of context-switching to another language.
This issue tracks the `aws-cdk-lib` side of the work. The enabling changes live in jsii (compiler, the `jsii-pacmak` Ruby target, and the `@jsii/ruby-runtime` gem); `aws-cdk-lib` only needs additive per-module `.jsiirc.json` Ruby target configuration.
### Use Case
Ruby remains a primary language for many infrastructure and platform teams, who today either maintain a parallel toolchain in another language or avoid CDK entirely. Demand has been long-standing and well-documented — the original request has been open since 2018 and is one of the most-reacted language asks.
Native Ruby bindings remove that friction: infrastructure is defined in the language the team already uses, with idiomatic Ruby ergonomics (snake_case methods, keyword-argument structs, PascalCase modules).
### Proposed Solution
Design is captured in **RFC 0935: Ruby language bindings** — tracking issue [aws/aws-cdk-rfcs#935](https://github.com/aws/aws-cdk-rfcs/issues/935) ([full RFC text](https://github.com/omarqureshi/aws-cdk-rfcs/blob/112e8691e482c53d9de54ccd499a98d76d5eeb47/text/0935-ruby-language-bindings.md)).
The change is **strictly additive** — no breaking changes to existing languages, and only an additive `targets.ruby` schema extension.
Implementation is split across repositories:
- **jsii** (compiler + `jsii-pacmak` Ruby target + `@jsii/ruby-runtime`): aws/jsii#5178 (draft).
- **aws-cdk-lib**: per-module `.jsiirc.json` Ruby target configuration (gem/module naming + acronyms) across the library. A self-contained branch is ready (`omarqureshi/aws-cdk@ruby-language-bindings`, a single commit with no dev scaffolding); a PR will follow this issue.
Naming follows the RFC: root namespace `AWSCDK`, idiomatic Ruby member/module casing, and AWS-prefix de-duplication (`aws-s3` → `AWSCDK::S3::Bucket`). Minimum Ruby is 3.3 (MRI).
> **Dependency:** this is gated on a jsii-compiler release with Ruby target support (tracked in the jsii PR above). Until that ships, the aws-cdk-lib PR's CI will be red by design. End-to-end generation and gem publishing have already been validated against a pre-release build of the compiler.
### Other Information
- Rosetta (code-example translation) for Ruby is out of scope for the initial submission and will follow separately.
- JRuby/TruffleRuby are out of scope for the initial release (MRI only).
### Acknowledgements
- [x] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### AWS CDK Library version (aws-cdk-lib)
n/a — cross-cutting language-binding addition to `aws-cdk-lib` (targets current `main`); not tied to a released version.
### AWS CDK CLI version
n/a — code-generation / library feature, not CLI-specific.
### Environment details (OS name and version, etc.)
n/a — affects jsii code generation and packaging, not a runtime environment.
Contributor guide
Research direction
Start with RFC 0935 and the per-module .jsiirc.json Ruby target configuration described for aws-cdk-lib; review the dependency on jsii#5178 and its Ruby compiler, pacmak, and runtime work. Done means the additive module configuration is complete across aws-cdk-lib and works with a jsii release supporting Ruby, while Rosetta and non-MRI runtimes remain out of scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, ruby, typescript
- Domain
- build-system, cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100