# ![jsii](./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/workflows/Main/badge.svg)](https://github.com/aws/jsii/actions?query=workflow%3AMain+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-public.ecr.aws%2Fjsii%2Fsuperchain-brightgreen?logo=docker)](https://gallery.ecr.aws/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, which are maintained in this repository) - [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, which are maintained in this repository) - [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: Contributing See [CONTRIBUTING](./CONTRIBUTING.md). ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
AWS CDK Automation
AWS CDK Automation

🚧 πŸ‘€
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

πŸ€”
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

πŸ’»
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

πŸ’»
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

πŸ’» πŸ›
Kaizen Conroy
Kaizen Conroy

πŸ’»
Kaushik Borra
Kaushik Borra

πŸ›
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 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]

🚧
nathannaveen
nathannaveen

🚧
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! ## :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