--- id: mini-racer version: "0.14.1" license: ISC license_treatment: permissive maintenance: aging --- # mini-racer — Minimal, modern embedded V8 for Python. License: permissive · Maintenance: aging · Downloads: 1.6M/mo ## 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 above — verify before relying. Embeds Google's V8 JavaScript engine in Python, allowing you to execute JavaScript code, evaluate expressions, and call functions with full ES6+ and WebAssembly support. 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 pip install mini-racer uv add mini-racer poetry add mini-racer ## Installing mini-racer 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. 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) Requires Python >= 3.10. Platform-specific compiled wheels; installation may fail on unsupported architectures. 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_current - Install friction: medium - Maintenance: aging - Downloads: 1.6M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags javascript execution in python, v8 engine python binding, run javascript from python, embedded javascript interpreter, python javascript bridge, execute es6 code python, wasm support python, javascript-runtime, v8-binding, async-capable [View on SkillFed](https://skillfed.io/packages/mini-racer) · [View on PyPI](https://pypi.org/project/mini-racer/)