mini-racer
Minimal, modern embedded V8 for Python.
Decision gist · record as of 2026-08-14
Yes, if you need to run JavaScript in Python without external dependencies like Node.js. The ISC license is permissive, install friction is moderate but manageable with prebuilt wheels, and there are no known vulnerabilities. Maintenance is aging (194 days since last release) but the repository is active. Best suited for projects that already depend on Python >= 3.10 and can tolerate platform-specific wheel installation.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.10.
- Platform-specific compiled wheels; installation may fail on unsupported architectures.
- Medium install friction due to compiled wheels for multiple platforms (macOS x86_64 and arm64, Linux x86_64 and aarch64, Windows x86_64 and arm64, musl variants).
License · maintenance · safety
ISC (permissive) — Licensed under ISC (permissive), allowing commercial and private use with minimal restrictions; suitable for most projects.
last release 2026-02-01 (194 days) · last repo commit 2026-02-02 · 217 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,554,509 downloads/mo, #3,770 on PyPI
Alternatives
Verify before relying
pip install mini-racer
from mini_racer import MiniRacer
ctx = MiniRacer()
result = ctx.eval("1 + 1")
print(result)- Performance characteristics compared to other V8 bindings or JavaScript runtimes in Python
- Memory overhead and heap management behavior under sustained or high-volume evaluation
- Thread safety guarantees and concurrent evaluation limits across multiple contexts
- Whether timeout_sec parameter is available in all evaluation modes
What it is and what it does
mini-racer is a Python binding to Google's V8 JavaScript engine that lets you run JavaScript code directly from Python. It supports modern ECMAScript, WebAssembly, and Unicode, and handles data marshalling between Python and JavaScript transparently—JavaScript objects become Python dicts, arrays become lists, and functions can be called from either side. The package is thread-safe and allows you to create reusable execution contexts.
You can evaluate expressions synchronously with timeout protection, call JavaScript functions from Python, handle promises asynchronously, and integrate with asyncio. It's commonly used in web projects for asset minification, transpilation, and running WebAssembly modules. The package manages its own event loop internally or integrates with existing asyncio loops, making it suitable for both sync and async Python code.
Use it for
- Minify or transpile JavaScript assets in web applications without Node.js
- Run Babel or other JavaScript build tools directly from Python for server-side asset processing
- Execute WebAssembly modules from Python with JavaScript glue code
- Evaluate dynamic JavaScript expressions or user-supplied scripts with timeout protection
- Call JavaScript utility functions or libraries from Python without subprocess overhead
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to run JavaScript in Python without external dependencies like Node.js.
The ISC license is permissive, install friction is moderate but manageable with prebuilt wheels, and there are no known vulnerabilities. Maintenance is aging (194 days since last release) but the repository is active. Best suited for projects that already depend on Python >= 3.10 and can tolerate platform-specific wheel installation.
Install
mini-racer on PyPI
Before you install
Medium install friction due to compiled wheels for multiple platforms (macOS x86_64 and arm64, Linux x86_64 and aarch64, Windows x86_64 and arm64, musl variants). No runtime dependencies. Maintenance status is aging—last release 194 days ago, but repository is active and not archived.
Requires Python >= 3.10. Platform-specific compiled wheels; installation may fail on unsupported architectures.
License in practice
Licensed under ISC (permissive), allowing commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install mini-racer
from mini_racer import MiniRacer
ctx = MiniRacer()
result = ctx.eval("1 + 1")
print(result)
Verify before relying
- Performance characteristics compared to other V8 bindings or JavaScript runtimes in Python
- Memory overhead and heap management behavior under sustained or high-volume evaluation
- Thread safety guarantees and concurrent evaluation limits across multiple contexts
- Whether timeout_sec parameter is available in all evaluation modes
Package facts
| License | ISC permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Aging 194 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,554,509 / month, #3,770 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersNatural Language :: EnglishProgramming Language :: Python :: 3 |
Evidence: mini_racer-0.14.1-py3-none-macosx_10_9_x86_64.whl; mini_racer-0.14.1-py3-none-macosx_11_0_arm64.whl; mini_racer-0.14.1-py3-none-manylinux_2_27_aarch64.whl; mini_racer-0.14.1-py3-none-manylinux_2_27_x86_64.whl; mini_racer-0.14.1-py3-none-musllinux_1_2_aarch64.whl; mini_racer-0.14.1-py3-none-musllinux_1_2_x86_64.whl; mini_racer-0.14.1-py3-none-win_amd64.whl; mini_racer-0.14.1-py3-none-win_arm64.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 › “v8 engine python binding”
- mini-racerEmbeds Google's V8 JavaScript engine in Python, allowing you to…
- stpyv8STPyV8 embeds Google V8 JavaScript engine into Python, allowing you…
- py-mini-racerEmbeds a modern V8 JavaScript engine in Python, allowing you to…
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 py-mini-racer · stpyv8 · PyExecJS · quickjs-ng · dukpy · quickjs-rs · Js2Py · Js2Py-3.13 · deno · akracer