quickjs
Wrapping the quickjs C library.
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
Wraps the QuickJS C library to execute JavaScript code from Python, with support for calling Python functions from JS and resource limits.
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
pip
pip install quickjsuv
uv add quickjspoetry
poetry add quickjsInstalling quickjs
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.
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
Requires a C compiler and build tools to compile the QuickJS extension if prebuilt wheels are unavailable for your platform.
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
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
quickjs-ngEmbeds and executes JavaScript code within…
unclear · top 15,000 on PyPI
quickjs-rsExecutes JavaScript code inside a WebAssembly…
permissive · top 15,000 on PyPI
dukpyDukPy is a JavaScript interpreter for Python…
permissive · top 15,000 on PyPI
langchain-quickjsAdds a persistent, sandboxed JavaScript REPL…
permissive · top 15,000 on PyPI
Js2Py-3.13Js2Py translates and executes JavaScript code…
permissive · top 15,000 on PyPI
Js2PyJs2Py translates and executes JavaScript code…
permissive · top 5,000 on PyPI
CoffeeScriptCompiles CoffeeScript code to JavaScript from…
permissive · top 15,000 on PyPI
mini-racerEmbeds Google's V8 JavaScript engine in Python,…
permissive · top 5,000 on PyPI
pygaljsProvides JavaScript assets from the pygal.js…
permissive · top 15,000 on PyPI
stpyv8STPyV8 embeds Google V8 JavaScript engine into…
permissive · top 5,000 on PyPI