Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
[![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%20Con
The jsii npm package is a tool that allows developers to write code in TypeScript and then use it in other programming languages such as Python, Java, and C#. It facilitates the creation of multi-language libraries by generating bindings for different languages from a single TypeScript codebase.
TypeScript to Python
This feature allows you to write a class in TypeScript and then use it in Python by generating the necessary bindings.
const jsii = require('jsii');
// Define a TypeScript class
class HelloWorld {
sayHello() {
return 'Hello, world!';
}
}
// Export the class using jsii
module.exports = { HelloWorld };
// In Python, you can now use the generated bindings
# from your_module import HelloWorld
# hello = HelloWorld()
# print(hello.sayHello())
TypeScript to Java
This feature allows you to write a class in TypeScript and then use it in Java by generating the necessary bindings.
const jsii = require('jsii');
// Define a TypeScript class
class Calculator {
add(a, b) {
return a + b;
}
}
// Export the class using jsii
module.exports = { Calculator };
// In Java, you can now use the generated bindings
// Calculator calculator = new Calculator();
// int result = calculator.add(1, 2);
// System.out.println(result);
TypeScript to C#
This feature allows you to write a class in TypeScript and then use it in C# by generating the necessary bindings.
const jsii = require('jsii');
// Define a TypeScript class
class Greeter {
greet(name) {
return `Hello, ${name}!`;
}
}
// Export the class using jsii
module.exports = { Greeter };
// In C#, you can now use the generated bindings
// Greeter greeter = new Greeter();
// string greeting = greeter.greet("World");
// Console.WriteLine(greeting);
SWIG (Simplified Wrapper and Interface Generator) is a tool that connects programs written in C and C++ with various high-level programming languages. Unlike jsii, which focuses on TypeScript, SWIG is used for C/C++ and supports a wide range of languages including Python, Java, and C#.
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!
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), ...
Head over to our documentation website!
The jsii toolchain is spread out on multiple repositories:
jsii
compiler is maintained (except releases
in the 1.x
line)jsii-rosetta
sample code transliteration tool
is maintained (except releases in the 1.x
line)@jsii/spec
, the package that defines the .jsii
assembly specificationjsii-config
, an interactive tool to help configure your jsii packagejsii-pacmak
, the bindings generator for jsii packagesjsii-reflect
, a higher-level way to process .jsii
assemblies1.x
release lines of jsii
and jsii-rosetta
Here's a collection of blog posts (in chronological order) related to jsii
:
: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!
The applicable Maintenance & Support policy can be reviewed in SUPPORT.md.
The current status of jsii
compiler releases is:
Release | Status | EOS | Comment |
---|---|---|---|
5.7.x | Current | TBD | |
5.6.x | Maintenance | 2025-07-01 | |
5.5.x | Maintenance | 2025-05-15 | |
5.4.x | Maintenance | 2025-02-28 |
jsii is distributed under the Apache License, Version 2.0.
See LICENSE and NOTICE for more information.
See CONTRIBUTING.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
FAQs
[![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%20Con
The npm package jsii receives a total of 129,534 weekly downloads. As such, jsii popularity was classified as popular.
We found that jsii demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.