quickjs
Wrapping the quickjs C library.
Decision gist · record as of 2026-08-14
Yes, if you need lightweight JavaScript execution and can accept the abandoned maintenance status. The package is stable with no known vulnerabilities, making it suitable for non-critical use cases. However, do not use it if you require ongoing security updates, Python version support beyond those with prebuilt wheels, or active bug fixes. Verify the unclear license terms before use in proprietary projects.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a C compiler and build tools to compile the QuickJS extension if prebuilt wheels are unavailable for your platform.
- Medium install friction due to compiled C extension; prebuilt wheels available for Python 3.7-3.10 on Windows, macOS, and Linux.
- Repository is archived and abandoned as of the latest release.
License · maintenance · safety
(unclear) — License treatment is unclear—no SPDX identifier or raw license text provided. Verify licensing terms before use in proprietary or redistributed projects.
last release 2023-11-19 (999 days) · last repo commit 2026-01-01 · 205 stars · archived
0 known vulnerabilities (OSV.dev, 2026-08-14) · 964,133 downloads/mo, #4,626 on PyPI
Alternatives
Verify before relying
pip install quickjs
from quickjs import Function
f = Function("f", """
function adder(a, b) {
return a + b;
}
function f(a, b) {
return adder(a, b);
}
""")
assert f(1, 2) == 3- Exact license terms and whether redistribution is permitted
- Whether abandoned status affects security or compatibility with future Python versions
- Support for Python versions beyond those with prebuilt wheels
What it is and what it does
quickjs is a Python binding for the QuickJS C library, allowing you to execute JavaScript code directly from Python and call Python functions from within that JavaScript. It handles type conversion for simple types (int, float, string) automatically and converts complex types (dicts, lists) via JSON. The library is thread-safe when using the Function class and provides resource control through memory and time limits, making it suitable for sandboxed or production code execution.
The package has been archived and is no longer actively maintained as of its last release in 2023-11-19. Prebuilt wheels are available for Python 3.7-3.10 on major platforms (Windows, macOS, Linux), reducing installation friction for those versions. However, the abandoned status means no new features, security patches, or compatibility updates should be expected.
Use it for
- Execute untrusted JavaScript in a sandboxed environment with memory and time limits for security.
- Embed a lightweight JavaScript engine in Python applications without external process dependencies.
- Call Python functions from JavaScript code running inside the interpreter for bidirectional interop.
- Prototype or test JavaScript logic from a Python codebase without spawning external processes.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need lightweight JavaScript execution and can accept the abandoned maintenance status.
The package is stable with no known vulnerabilities, making it suitable for non-critical use cases. However, do not use it if you require ongoing security updates, Python version support beyond those with prebuilt wheels, or active bug fixes. Verify the unclear license terms before use in proprietary projects.
Install
quickjs on PyPI
Before you install
Medium install friction due to compiled C extension; prebuilt wheels available for Python 3.7-3.10 on Windows, macOS, and Linux. Repository is archived and abandoned as of the latest release.
Requires a C compiler and build tools to compile the QuickJS extension if prebuilt wheels are unavailable for your platform.
License in practice
License treatment is unclear—no SPDX identifier or raw license text provided. Verify licensing terms before use in proprietary or redistributed projects.
Quickstart
pip install quickjs
from quickjs import Function
f = Function("f", """
function adder(a, b) {
return a + b;
}
function f(a, b) {
return adder(a, b);
}
""")
assert f(1, 2) == 3
Verify before relying
- Exact license terms and whether redistribution is permitted
- Whether abandoned status affects security or compatibility with future Python versions
- Support for Python versions beyond those with prebuilt wheels
Package facts
| License | Not declared unclear |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 999 days since the last release |
| Last repo commit | repository archived |
| First released | |
| Downloads | 964,133 / month, #4,626 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: quickjs-1.19.4-cp310-cp310-macosx_11_0_x86_64.whl; quickjs-1.19.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl; quickjs-1.19.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; quickjs-1.19.4-cp310-cp310-win_amd64.whl; quickjs-1.19.4-cp311-cp311-macosx_10_9_universal2.whl; quickjs-1.19.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl; quickjs-1.19.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; quickjs-1.19.4-cp311-cp311-win_amd64.whl; quickjs-1.19.4-cp312-cp312-macosx_10_9_universal2.whl; quickjs-1.19.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl; quickjs-1.19.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; quickjs-1.19.4-cp312-cp312-win_amd64.whl; quickjs-1.19.4-cp38-cp38-macosx_11_0_x86_64.whl; quickjs-1.19.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl; quickjs-1.19.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; quickjs-1.19.4-cp38-cp38-win_amd64.whl; quickjs-1.19.4-cp39-cp39-macosx_11_0_x86_64.whl; quickjs-1.19.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl; quickjs-1.19.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; quickjs-1.19.4-cp39-cp39-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “quickjs binding”
- quickjsWraps the QuickJS C library to execute JavaScript code from Python,…
- langchain-quickjsAdds a persistent, sandboxed JavaScript REPL tool to deepagents…
- quickjs-rsExecutes JavaScript code inside a WebAssembly sandbox from Python,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also quickjs-ng · quickjs-rs · dukpy · langchain-quickjs · Js2Py-3.13 · Js2Py · CoffeeScript · mini-racer · pygaljs · stpyv8