Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aws/jsii-compiler

The jsii compiler for TypeScript
https://github.com/aws/jsii-compiler

aws cdk compiler typescript

Last synced: 4 days ago
JSON representation

The jsii compiler for TypeScript

Awesome Lists containing this project

README

        

# ![jsii](https://raw.githubusercontent.com/aws/jsii-compiler/main/logo/png/128.png)

[![Join the chat at https://cdk.Dev](https://img.shields.io/static/v1?label=Slack&message=cdk.dev&color=brightgreen&logo=slack)](https://cdk.dev)
[![All Contributors](https://img.shields.io/github/all-contributors/aws/jsii/main?label=%E2%9C%A8%20All%20Contributors)](#contributors-)
[![Build Status](https://github.com/aws/jsii-compiler/workflows/build/badge.svg)](https://github.com/aws/jsii-compiler/actions?query=workflow%3Abuild+branch%3Amain)
[![npm](https://img.shields.io/npm/v/jsii?logo=npm)](https://www.npmjs.com/package/jsii)
[![docker](https://img.shields.io/badge/docker-jsii%2Fsuperchain-brightgreen?logo=docker)](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.7.x` | Current | TBD | ![npm](https://img.shields.io/npm/v/jsii/v5.7-latest?label=jsii%40v5.7-latest&logo=npm) |
| `5.6.x` | Maintenance | 2025-07-01 | ![npm](https://img.shields.io/npm/v/jsii/v5.6-latest?label=jsii%40v5.6-latest&logo=npm) |
| `5.5.x` | Maintenance | 2025-05-15 | ![npm](https://img.shields.io/npm/v/jsii/v5.5-latest?label=jsii%40v5.5-latest&logo=npm) |
| `5.4.x` | Maintenance | 2025-02-28 | ![npm](https://img.shields.io/npm/v/jsii/v5.4-latest?label=jsii%40v5.4-latest&logo=npm) |

## :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
Aatman

πŸ’»
Aaron Costley
Aaron Costley

πŸ› πŸ’» πŸ€” πŸ‘€
Abdallah Hodieb
Abdallah Hodieb

πŸ›
Adam Ruka
Adam Ruka

πŸ› πŸ’» 🚧 πŸ‘€
Adrian Dimech
Adrian Dimech

πŸ’»
Adrian Hesketh
Adrian Hesketh

πŸ’»
Alex Pulver
Alex Pulver

πŸ›


Amir Szekely
Amir Szekely

πŸ’»
Andi Pabst
Andi Pabst

πŸ›
Andrew Wason
Andrew Wason

πŸ› πŸ’»
AndrΓ© Fontenele
AndrΓ© Fontenele

πŸ’»
Andy Slezak
Andy Slezak

πŸ’»
Ansgar Mertens
Ansgar Mertens

🚧 πŸ’» πŸ›
Anshul Guleria
Anshul Guleria

πŸ€”


Anurag Roy
Anurag Roy

πŸ’»
Ari Palo
Ari Palo

πŸ€”
Armaan Tobaccowalla
Armaan Tobaccowalla

πŸ›
BartΕ‚omiej Jurek
BartΕ‚omiej Jurek

πŸ›
Ben Bridts
Ben Bridts

πŸ“–
Ben Chaimberg
Ben Chaimberg

πŸ“–
Ben Farr
Ben Farr

πŸ“–


Ben Walters
Ben Walters

πŸ€”
Benjamin Macher
Benjamin Macher

πŸ“–
Benjamin Maizels
Benjamin Maizels

πŸ’» πŸ‘€
Bervianto Leo Pratama
Bervianto Leo Pratama

πŸ’»
Bill Cauchois
Bill Cauchois

πŸ€”
Bradley Sherman
Bradley Sherman

πŸ’»
Brecht Verhoeve
Brecht Verhoeve

πŸ€”


Breland Miley
Breland Miley

πŸ’»
Bryan Moffatt
Bryan Moffatt

πŸ’»
CaerusKaru
CaerusKaru

πŸ’» 🚧
Calvin Combs
Calvin Combs

πŸ’» πŸ‘€
Camilo BermΓΊdez
Camilo BermΓΊdez

πŸ›
Campion Fellin
Campion Fellin

πŸ’»
Carter Van Deuren
Carter Van Deuren

πŸ›


Chris Garvis
Chris Garvis

πŸ“–
Christian Moore
Christian Moore

πŸ›
Christophe Vico
Christophe Vico

πŸ›
Christopher Currie
Christopher Currie

πŸ’» πŸ€”
Christopher Rybicki
Christopher Rybicki

πŸ“– πŸ› πŸ’»
Colin Francis
Colin Francis

πŸ’»
CommanderRoot
CommanderRoot

πŸ’»


Cory Hall
Cory Hall

πŸ›
Cristian Măgherușan-Stanciu
Cristian Măgherușan-Stanciu

πŸ›
CyrusNajmabadi
CyrusNajmabadi

πŸ› πŸ€”
Damian Silbergleith
Damian Silbergleith

πŸ’» πŸ›
Daniel Dinu
Daniel Dinu

πŸ› πŸ’»
Daniel Schmidt
Daniel Schmidt

πŸ› πŸ’»
Daniel Schroeder
Daniel Schroeder

πŸ› πŸ’» πŸ“– πŸ€” 🚧


Dave Slotnick
Dave Slotnick

πŸ›
David Bell
David Bell

πŸ’»
Donald Stufft
Donald Stufft

πŸ› πŸ’» πŸ€” πŸ‘€
Dongie Agnir
Dongie Agnir

πŸ’» πŸ‘€
Eduardo Rabelo
Eduardo Rabelo

πŸ“–
Eduardo Sena S. Rosa
Eduardo Sena S. Rosa

πŸ›
Elad Ben-Israel
Elad Ben-Israel

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€ πŸ“’


Eli Polonsky
Eli Polonsky

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€
Eric Carboni
Eric Carboni

πŸ’»
Eric Z. Beard
Eric Z. Beard

πŸ“†
Erik Karlsson
Erik Karlsson

πŸ›
Eugene Kozlov
Eugene Kozlov

πŸ’»
Fabio Gentile
Fabio Gentile

πŸ›
Florian Eitel
Florian Eitel

πŸ€”


Glib Shpychka
Glib Shpychka

πŸ›
Graham Lea
Graham Lea

πŸ€” πŸ‘€
Greg Lucas
Greg Lucas

πŸ’»
Hamza Assyad
Hamza Assyad

πŸ› πŸ’» πŸ€” πŸ‘€
Hari Pachuveetil
Hari Pachuveetil

πŸ“ πŸ“–
Hirotaka Tagawa / wafuwafu13
Hirotaka Tagawa / wafuwafu13

πŸ’»
Hogan Bobertz
Hogan Bobertz

πŸ’»


Hsing-Hui Hsu
Hsing-Hui Hsu

πŸ’» πŸ“– πŸ€” πŸ‘€
Huy Phan (Harry)
Huy Phan (Harry)

πŸ’»
Ikko Ashimine
Ikko Ashimine

πŸ“–
James
James

πŸ› πŸ’»
James Kelley
James Kelley

πŸ›
James Mead
James Mead

πŸ’»
James Siri
James Siri

πŸ’» 🚧


Jason Del Ponte
Jason Del Ponte

πŸ€” πŸ‘€
Jason Fulghum
Jason Fulghum

πŸ€” πŸ“† πŸ‘€
Jeff Malins
Jeff Malins

πŸ’»
Jerry Kindall
Jerry Kindall

πŸ“– πŸ€”
Jimmy Gaussen
Jimmy Gaussen

πŸ€”
Johannes Weber
Johannes Weber

πŸ“–
John Pantzlaff
John Pantzlaff

πŸ’»


Jon Day
Jon Day

πŸ’»
Jon Steinich
Jon Steinich

πŸ› πŸ€” πŸ’»
Joseph Lawson
Joseph Lawson

πŸ‘€
Joseph Martin
Joseph Martin

πŸ›
Junix
Junix

πŸ›
Justin Frahm
Justin Frahm

πŸ›
Justin Taylor
Justin Taylor

πŸ›


Kaizen Conroy
Kaizen Conroy

πŸ’»
Kaushik Borra
Kaushik Borra

πŸ›
Kayo
Kayo

πŸ’»
Kendra Neil
Kendra Neil

πŸ’»
Knut O. Hellan
Knut O. Hellan

πŸ›
Kyle Thomson
Kyle Thomson

πŸ’» πŸ‘€
Leandro Padua
Leandro Padua

πŸ›


Liang Zhou
Liang Zhou

πŸ› πŸ’»
Madeline Kusters
Madeline Kusters

πŸ’» πŸ›
Maja S Bratseth
Maja S Bratseth

πŸ›
Marcos Diez
Marcos Diez

πŸ›
Mark Nielsen
Mark Nielsen

πŸ’»
Matthew Bonig
Matthew Bonig

πŸ› πŸ“
Matthew Pirocchi
Matthew Pirocchi

πŸ’» πŸ€” πŸ‘€


Meng Xin Zhu
Meng Xin Zhu

πŸ›
Michael Neil
Michael Neil

🚧
Mike Lane
Mike Lane

πŸ›
Mitch Garnaat
Mitch Garnaat

πŸ› πŸ’» πŸ€” πŸ‘€
Mitchell Valine
Mitchell Valine

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€
Mohamad Soufan
Mohamad Soufan

πŸ“–
Mohamed Elasmar
Mohamed Elasmar

πŸ’»


Momo Kornher
Momo Kornher

πŸ’»
Mykola Mogylenko
Mykola Mogylenko

πŸ›
Naumel
Naumel

πŸ‘€
Neta Nir
Neta Nir

πŸ’» πŸ€” 🚧 πŸ‘€
Nick Lynch
Nick Lynch

πŸ› πŸ’» 🚧 πŸ‘€
Niranjan Jayakar
Niranjan Jayakar

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€
Noah Litov
Noah Litov

πŸ’» 🚧 πŸ‘€


Otavio Macedo
Otavio Macedo

πŸ’» πŸ›
PIDZ - Bart
PIDZ - Bart

πŸ€”
Pahud Hsieh
Pahud Hsieh

πŸ’»
Peter Woodworth
Peter Woodworth

🚧
Petr Kacer
Petr Kacer

πŸ›
Petra Barus
Petra Barus

πŸ’»
Philip Cali
Philip Cali

πŸ€”


Quentin Loos
Quentin Loos

πŸ€”
Raphael
Raphael

πŸ›
Richard H Boyd
Richard H Boyd

πŸ›
Rico Huijbers
Rico Huijbers

πŸ› πŸ’» πŸ€” 🚧 πŸ‘€
Romain Marcadier
Romain Marcadier

πŸ› πŸ’» 🎨 πŸ€” 🚧 πŸ‘€ πŸ“
Ryan Parker
Ryan Parker

πŸ’»
SADIK KUZU
SADIK KUZU

πŸ‘€


SK
SK

πŸ€”
Sam Fink
Sam Fink

πŸ’» πŸ‘€
Sam Goodwin
Sam Goodwin

πŸ‘€
Sebastian Korfmann
Sebastian Korfmann

πŸ› πŸ’» πŸ€”
Sepehr Laal
Sepehr Laal

πŸ›
Shailja Khurana
Shailja Khurana

πŸ’»
Shane Witbeck
Shane Witbeck

πŸ€”


Shiv Lakshminarayan
Shiv Lakshminarayan

πŸ’» 🚧 πŸ‘€
Somaya
Somaya

πŸ’» πŸ€” 🚧 πŸ‘€
Stephen Kuenzli
Stephen Kuenzli

πŸ“–
Takahiro Sugiura
Takahiro Sugiura

πŸ“–
The Gitter Badger
The Gitter Badger

πŸ’» 🚧
Thomas Matecki
Thomas Matecki

πŸ’»
Thomas Poignant
Thomas Poignant

πŸ›


Thomas Steinbach
Thomas Steinbach

πŸ›
Thorsten Hoeger
Thorsten Hoeger

πŸ’»
Tim Wagner
Tim Wagner

πŸ› πŸ€”
Timothy Jones
Timothy Jones

πŸ’»
Tobias Lidskog
Tobias Lidskog

πŸ’»
Tom Bonner
Tom Bonner

πŸ›
Tom Keller
Tom Keller

πŸ’»


Ty Coghlan
Ty Coghlan

πŸ›
Tyler van Hensbergen
Tyler van Hensbergen

πŸ€”
Vinayak Kukreja
Vinayak Kukreja

πŸ’»
Vlad Hrybok
Vlad Hrybok

πŸ›
Vladimir Shchur
Vladimir Shchur

πŸ›
Will Bender
Will Bender

πŸ’»
Yan Zhulanow
Yan Zhulanow

πŸ’»


Yathi
Yathi

πŸ’»
Yigong Liu
Yigong Liu

πŸ› πŸ€”
Zach Bienenfeld
Zach Bienenfeld

πŸ›
ajnarang
ajnarang

πŸ€”
andyan
andyan

πŸ’»
aniljava
aniljava

πŸ’»
arnogeurts-sqills
arnogeurts-sqills

πŸ› πŸ’»


cn-cit
cn-cit

πŸ›
deccy-mcc
deccy-mcc

πŸ›
dependabot-preview[bot]
dependabot-preview[bot]

πŸ› 🚧
dependabot[bot]
dependabot[bot]

🚧
dheffx
dheffx

πŸ›
gregswdl
gregswdl

πŸ›
guyroberts21
guyroberts21

πŸ“–


mattBrzezinski
mattBrzezinski

πŸ“–
mergify
mergify

🚧
mergify[bot]
mergify[bot]

🚧
mikewrighton
mikewrighton

πŸ’»
nathannaveen
nathannaveen

🚧
paulhcsun
paulhcsun

πŸ’»
seiyashima42
seiyashima42

πŸ› πŸ’» πŸ“–


sullis
sullis

πŸ’»
vaneek
vaneek

πŸ›
wendysophie
wendysophie

πŸ›
ysuzuki19
ysuzuki19

πŸ’»

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