https://github.com/aws/jsii-compiler
The jsii compiler for TypeScript
https://github.com/aws/jsii-compiler
aws cdk compiler typescript
Last synced: about 2 months ago
JSON representation
The jsii compiler for TypeScript
- Host: GitHub
- URL: https://github.com/aws/jsii-compiler
- Owner: aws
- License: apache-2.0
- Created: 2023-02-07T08:56:15.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-05-04T00:55:52.000Z (about 2 months ago)
- Last Synced: 2026-05-04T03:00:14.834Z (about 2 months ago)
- Topics: aws, cdk, compiler, typescript
- Language: TypeScript
- Homepage: https://aws.github.io/jsii/
- Size: 8.71 MB
- Stars: 44
- Watchers: 10
- Forks: 20
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Support: SUPPORT.md
- Notice: NOTICE
Awesome Lists containing this project
README
# 
[](https://cdk.dev)
[](#contributors-)
[](https://github.com/aws/jsii-compiler/actions?query=workflow%3Abuild+branch%3Amain)
[](https://www.npmjs.com/package/jsii)
[](https://hub.docker.com/r/jsii/superchain)
## Overview
`jsii` allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the
[AWS Cloud Development Kit][cdk] to deliver polyglot libraries from a single codebase!
[cdk]: https://github.com/aws/aws-cdk
A class library written in **TypeScript** can be used in projects authored in **TypeScript** or **Javascript** (as
usual), but also in **Python**, **Java**, **C#** (and other languages from the _.NET_ family), ...
## :question: Documentation
Head over to our [documentation website](https://aws.github.io/jsii)!
The jsii toolchain is spread out on multiple repositories:
- [aws/jsii-compiler](https://github.com/aws/jsii-compiler) is where the `jsii` compiler is maintained (except releases
in the `1.x` line)
- [aws/jsii-rosetta](https://github.com/aws/jsii-rosetta) is where the `jsii-rosetta` sample code transliteration tool
is maintained (except releases in the `1.x` line)
- [aws/jsii](https://github.com/aws/jsii) is where the rest of the toolchain is maintained, including:
- `@jsii/spec`, the package that defines the *`.jsii` assembly* specification
- `jsii-config`, an interactive tool to help configure your jsii package
- `jsii-pacmak`, the bindings generator for jsii packages
- `jsii-reflect`, a higher-level way to process *`.jsii` assemblies*
- The jsii runtime libraries for the supported jsii target languages
- `1.x` release lines of `jsii` and `jsii-rosetta`
## :book: Blog Posts
Here's a collection of blog posts (in chronological order) related to `jsii`:
- **2020-01-11:** [How to Create CDK Constructs][mbonig-2020-01-11], by [Matthew Bonig][@mbonig]
- **2020-05-27:** [Generate Python, Java, and .NET software libraries from a TypeScript
source][floydpink-2020-05-27], by [Hari Pachuveetil][@floydpink]
- **2020-12-23:** [How the jsii open source framework meets developers where they are
][romain-2020-12-23], by [Romain Marcadier][@RomainMuller]
[mbonig-2020-01-11]: https://www.matthewbonig.com/2020/01/11/creating-constructs/
[floydpink-2020-05-27]:
https://aws.amazon.com/fr/blogs/opensource/generate-python-java-dotnet-software-libraries-from-typescript-source/
[romain-2020-12-23]:
https://aws.amazon.com/blogs/opensource/how-the-jsii-open-source-framework-meets-developers-where-they-are/
[@mbonig]: http://www.matthewbonig.com/
[@floydpink]: https://harimenon.com/
[@romainmuller]: https://github.com/RomainMuller
> :information_source: If you wrote blog posts about `jsii` and would like to have them referenced here, do not hesitate
> to file a pull request to add the links here!
## :gear: Maintenance & Support
The applicable _Maintenance & Support policy_ can be reviewed in [SUPPORT.md](./SUPPORT.md).
The current status of `jsii` compiler releases is:
| Release | Status | EOS | Comment |
| ------- | ----------- | ---------- | --------------------------------------------------------------------------------------- |
| `5.9.x` | Current | TBD |  |
| `5.8.x` | Unsupported | 2026-02-15 |  |
## :mute: Silencing Warnings
The `--silence-warnings` option allows you to suppress specific warnings from the compiler output. Silenced warnings
are still emitted internally (e.g. they are still part of the assembly), but are not printed to the console. When
`--fail-on-warnings` (`--Werr`) is set, silenced warnings are not treated as errors.
Warnings can be identified by JSII code, number, or diagnostic name:
```sh
# By full JSII code
jsii --silence-warnings JSII5018
# By number only
jsii --silence-warnings 5018
# By specific diagnostic name (the part after the slash)
jsii --silence-warnings reserved-word
# By full diagnostic name
jsii --silence-warnings language-compatibility/reserved-word
# By category (silences ALL warnings in that category)
jsii --silence-warnings language-compatibility
# Multiple warnings
jsii --silence-warnings reserved-word JSII5019
```
### Inline Suppression
Individual warnings can be suppressed directly in source code using the `@jsii suppress` directive. This is useful
when you want `--fail-on-warnings` enabled globally but need to allow specific instances of a warning.
Each directive accepts a single warning identifier using the same formats as `--silence-warnings`. An optional text after
the identifier is treated as an explanation comment. Use multiple directives to suppress multiple warnings:
```ts
export class MyClass {
/**
* @jsii suppress JSII5019 this name is intentional
* @jsii suppress reserved-word
*/
public myClass(): void { }
}
```
The suppression applies to the annotated declaration and all of its members. For example, a `@jsii suppress`
directive on a class will suppress matching warnings on all methods and properties within that class.
Only warnings that reference a source code location can be suppressed inline. Warnings not tied to a specific node
(e.g. `JSII0003` for a missing README) are not affected.
## :balance_scale: License
**jsii** is distributed under the [Apache License, Version 2.0][apache-2.0].
See [LICENSE](./LICENSE) and [NOTICE](./NOTICE) for more information.
[apache-2.0]: https://www.apache.org/licenses/LICENSE-2.0
## :gear: Contributing
See [CONTRIBUTING](./CONTRIBUTING.md).
### Contributors β¨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Aatman
π»

Aaron Costley
π π» π€ π

Abdallah Hodieb
π

Adam Ruka
π π» π§ π

Adrian Dimech
π»

Adrian Hesketh
π»

Alex Pulver
π

Amir Szekely
π»

Andi Pabst
π

Andrew Wason
π π»

AndrΓ© Fontenele
π»

Andy Slezak
π»

Ansgar Mertens
π§ π» π

Anshul Guleria
π€

Anurag Roy
π»

Ari Palo
π€

Armaan Tobaccowalla
π

BartΕomiej Jurek
π

Ben Bridts
π

Ben Chaimberg
π

Ben Farr
π

Ben Walters
π€

Benjamin Macher
π

Benjamin Maizels
π» π

Bervianto Leo Pratama
π»

Bill Cauchois
π€

Bradley Sherman
π»

Brecht Verhoeve
π€

Breland Miley
π»

Bryan Moffatt
π»

CaerusKaru
π» π§

Calvin Combs
π» π

Camilo BermΓΊdez
π

Campion Fellin
π»

Carter Van Deuren
π

Chris Garvis
π

Christian Moore
π

Christophe Vico
π

Christopher Currie
π» π€

Christopher Rybicki
π π π»

Colin Francis
π»

CommanderRoot
π»

Cory Hall
π

Cristian MΔgheruΘan-Stanciu
π

CyrusNajmabadi
π π€

Damian Silbergleith
π» π

Daniel Dinu
π π»

Daniel Schmidt
π π»

Daniel Schroeder
π π» π π€ π§

Dave Slotnick
π

David Bell
π»

Donald Stufft
π π» π€ π

Dongie Agnir
π» π

Eduardo Rabelo
π

Eduardo Sena S. Rosa
π

Elad Ben-Israel
π π» π€ π§ π π’

Eli Polonsky
π π» π€ π§ π

Eric Carboni
π»

Eric Z. Beard
π

Erik Karlsson
π

Eugene Kozlov
π»

Fabio Gentile
π

Florian Eitel
π€

Glib Shpychka
π

Graham Lea
π€ π

Greg Lucas
π»

Hamza Assyad
π π» π€ π

Hari Pachuveetil
π π

Hirotaka Tagawa / wafuwafu13
π»

Hogan Bobertz
π»

Hsing-Hui Hsu
π» π π€ π

Huy Phan (Harry)
π»

Ikko Ashimine
π

James
π π»

James Kelley
π

James Mead
π»

James Siri
π» π§

Jason Del Ponte
π€ π

Jason Fulghum
π€ π π

Jeff Malins
π»

Jerry Kindall
π π€

Jimmy Gaussen
π€

Johannes Weber
π

John Pantzlaff
π»

Jon Day
π»

Jon Steinich
π π€ π»

Joseph Lawson
π

Joseph Martin
π

Junix
π

Justin Frahm
π

Justin Taylor
π

Kaizen Conroy
π»

Kaushik Borra
π

Kayo
π»

Kendra Neil
π»

Knut O. Hellan
π

Kyle Thomson
π» π

Leandro Padua
π

Liang Zhou
π π»

Madeline Kusters
π» π

Maja S Bratseth
π

Marcos Diez
π

Mark Nielsen
π»

Matthew Bonig
π π

Matthew Pirocchi
π» π€ π

Meng Xin Zhu
π

Michael Neil
π§

Mike Lane
π

Mitch Garnaat
π π» π€ π

Mitchell Valine
π π» π€ π§ π

Mohamad Soufan
π

Mohamed Elasmar
π»

Momo Kornher
π»

Mykola Mogylenko
π

Naumel
π

Neta Nir
π» π€ π§ π

Nick Lynch
π π» π§ π

Niranjan Jayakar
π π» π€ π§ π

Noah Litov
π» π§ π

Otavio Macedo
π» π

PIDZ - Bart
π€

Pahud Hsieh
π»

Peter Woodworth
π§

Petr Kacer
π

Petra Barus
π»

Philip Cali
π€

Quentin Loos
π€

Raphael
π

Richard H Boyd
π

Rico Huijbers
π π» π€ π§ π

Romain Marcadier
π π» π¨ π€ π§ π π

Ryan Parker
π»

SADIK KUZU
π

SK
π€

Sam Fink
π» π

Sam Goodwin
π

Sebastian Korfmann
π π» π€

Sepehr Laal
π

Shailja Khurana
π»

Shane Witbeck
π€

Shiv Lakshminarayan
π» π§ π

Somaya
π» π€ π§ π

Stephen Kuenzli
π

Takahiro Sugiura
π

The Gitter Badger
π» π§

Thomas Matecki
π»

Thomas Poignant
π

Thomas Steinbach
π

Thorsten Hoeger
π»

Tim Wagner
π π€

Timothy Jones
π»

Tobias Lidskog
π»

Tom Bonner
π

Tom Keller
π»

Ty Coghlan
π

Tyler van Hensbergen
π€

Vinayak Kukreja
π»

Vlad Hrybok
π

Vladimir Shchur
π

Will Bender
π»

Yan Zhulanow
π»

Yathi
π»

Yigong Liu
π π€

Zach Bienenfeld
π

ajnarang
π€

andyan
π»

aniljava
π»

arnogeurts-sqills
π π»

cn-cit
π

deccy-mcc
π
![dependabot-preview[bot]](https://avatars3.githubusercontent.com/in/2141?v=4?s=100)
dependabot-preview[bot]
π π§
![dependabot[bot]](https://avatars0.githubusercontent.com/in/29110?v=4?s=100)
dependabot[bot]
π§

dheffx
π

gregswdl
π

guyroberts21
π

mattBrzezinski
π

mergify
π§
![mergify[bot]](https://avatars1.githubusercontent.com/in/10562?v=4?s=100)
mergify[bot]
π§

mikewrighton
π»

nathannaveen
π§

paulhcsun
π»

seiyashima42
π π» π

sullis
π»

vaneek
π

wendysophie
π

ysuzuki19
π»
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
Contributions of any kind welcome!