jsii
Python client for jsii runtime
What it is and what it does
jsii is the Python runtime layer for the jsii polyglot framework, which allows a single TypeScript class library to be consumed natively from Python, Java, C#, and other languages. When you install jsii, you get the Python bindings and runtime machinery needed to call JavaScript classes as if they were native Python objects—the framework handles marshalling, type conversion, and cross-language method dispatch behind the scenes.
The primary use case is consuming jsii-compiled libraries from Python code. Rather than rewriting libraries in every target language, teams author once in TypeScript, compile to jsii format, and jsii's language-specific runtimes (including this Python client) make those classes available with natural syntax in each language. It depends on attrs, cattrs, typeguard, publication, python-dateutil, and typing_extensions to handle serialization, type checking, and object lifecycle across the language boundary.
Use it for:
- Consume jsii-compiled TypeScript libraries from Python with native class and method syntax.
- Build polyglot infrastructure or application frameworks where a single TypeScript codebase serves multiple language ecosystems.
- Integrate Python applications with JavaScript libraries that have been published in jsii format.
- Maintain type safety and IDE support when calling cross-language bindings through typeguard validation.
- Use libraries authored in TypeScript without rewriting them for Python environments.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
jsii is a Python runtime client that enables Python code to interact with JavaScript classes compiled to jsii format, allowing polyglot use of TypeScript-authored class libraries across multiple languages.
Yes, if you are using jsii-compiled libraries in Python. The package is actively maintained, has no known vulnerabilities, installs with low friction, and carries a permissive Apache-2.0 license. Install only if you have a concrete need to consume jsii-compiled bindings; it is not useful as a standalone tool.
Install
jsii on PyPI
pip
pip install jsiiuv
uv add jsiipoetry
poetry add jsiiInstalling jsii
Before you install
Low friction installation with six stable runtime dependencies (attrs, cattrs, publication, typeguard, python-dateutil, typing_extensions). Active maintenance with a release within the last month and no known vulnerabilities. Requires Python 3.10 or later.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you must include a copy of the license and notice file but face no copyleft obligations.
Quickstart
pip install jsii
import jsii
# jsii provides runtime support for consuming compiled bindings
# Typically used with pre-compiled jsii libraries
Requires Python 3.10 or later. The package is a runtime client for jsii-compiled libraries; you need pre-compiled bindings to use it effectively.
Verify before relying
- Whether all listed Python versions (3.10–3.14) are actively tested or if some are aspirational.
- Performance characteristics and memory overhead when bridging between Python and JavaScript runtimes.
- Availability and ecosystem of jsii-compiled libraries beyond the primary use case.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — attrs, cattrs, publication, typeguard, python-dateutil, typing_extensions |
| Maintenance | actively maintained — 28 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 9,003,259/month — #1,569 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jsii-1.139.0-py3-none-any.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
dukpyDukPy is a JavaScript interpreter for Python…
permissive · top 15,000 on PyPI
py4jPy4J enables Python programs to dynamically…
permissive · top 1,000 on PyPI
quickjs-rsExecutes JavaScript code inside a WebAssembly…
permissive · top 15,000 on PyPI
denoPackages and distributes Deno (a…
permissive · top 15,000 on PyPI
rjsminrjsmin minifies JavaScript code by removing…
permissive · top 5,000 on PyPI
pydantic-to-typescript2Converts Pydantic models to TypeScript…
permissive · top 15,000 on PyPI
jpype1JPype provides Python access to Java classes…
permissive · top 1,000 on PyPI
RachioPyRachioPy provides a Python interface to the…
permissive · top 15,000 on PyPI
jsminMinifies JavaScript code by removing…
permissive · top 5,000 on PyPI
pydantic-to-typescriptConverts pydantic model definitions into…
permissive · top 5,000 on PyPI