Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/awslabs/jsii

jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!
https://github.com/awslabs/jsii

aws cross-language node typescript

Last synced: 3 months ago
JSON representation

jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!

Awesome Lists containing this project

README

        

# ![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