pscript
Python to JavaScript compiler.
Decision gist · record as of 2026-08-14
Yes, if you need to write browser code in Python. The package has no dependencies, installs cleanly, is actively maintained, and solves a real problem for teams that prefer Python syntax. The main gotcha is that only a Python subset compiles—you need to verify your code will translate before committing to this approach.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; only a subset of Python syntax is supported (not all Python features compile to JavaScript).
- Installation is straightforward: the package is pure Python with no runtime dependencies, distributed as a wheel, and requires Python 3.8 or later.
- The project is actively maintained with a recent release.
License · maintenance · safety
(unclear)
last release 2026-03-31 (136 days) · last repo commit 2026-03-31 · 274 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 284,719 downloads/mo, #8,061 on PyPI
Alternatives
Verify before relying
from pscript import py2js
def foo(a, b=2):
print(a - b)
print(py2js(foo))- Exact scope of Python subset supported (which language features compile and which do not)
- Performance characteristics of generated JavaScript compared to hand-written code
- Browser compatibility details beyond the stated modern-browser and IE9+ support
What it is and what it does
PScript is a Python-to-JavaScript compiler that translates a carefully defined subset of Python into executable JavaScript. It was originally built as part of the Flexx framework and now stands as a standalone tool. The compiler takes Python functions and classes and outputs equivalent JavaScript code, allowing developers to write browser-facing code using Python syntax and semantics.
The package is pure Python with no external dependencies, making installation trivial. It targets modern browsers (Firefox, Chrome, Edge) and Internet Explorer 9 and above, though some newer Python constructs like async/await do not work in older browsers. The generated JavaScript handles Python-specific features like default arguments and prints to the browser console. It is actively maintained and used in production projects like TimeTagger.app.
Use it for
- Build interactive web frontends where you want to write client-side logic in Python rather than JavaScript.
- Compile Python functions to JavaScript for use in web applications or browser-based tools.
- Develop Flexx-based applications that automatically transpile Python UI code to run in the browser.
- Create hybrid Python/JavaScript projects where business logic can be shared or ported between server and client.
- Prototype browser interactions and DOM manipulation using Python syntax before or instead of learning JavaScript.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to write browser code in Python.
The package has no dependencies, installs cleanly, is actively maintained, and solves a real problem for teams that prefer Python syntax. The main gotcha is that only a Python subset compiles—you need to verify your code will translate before committing to this approach.
Install
pscript on PyPI
Before you install
Installation is straightforward: the package is pure Python with no runtime dependencies, distributed as a wheel, and requires Python 3.8 or later. The project is actively maintained with a recent release.
Requires Python 3.8 or later; only a subset of Python syntax is supported (not all Python features compile to JavaScript).
Quickstart
from pscript import py2js
def foo(a, b=2):
print(a - b)
print(py2js(foo))
Verify before relying
- Exact scope of Python subset supported (which language features compile and which do not)
- Performance characteristics of generated JavaScript compared to hand-written code
- Browser compatibility details beyond the stated modern-browser and IE9+ support
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 136 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 284,719 / month, #8,061 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: pscript-0.8.1-py3-none-any.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 › “python to javascript compiler”
- pscriptPScript compiles a Python subset to JavaScript, enabling you to write…
- dukpyDukPy is a JavaScript interpreter for Python that runs JavaScript…
- CoffeeScriptCompiles CoffeeScript code to JavaScript from within Python, wrapping…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also CoffeeScript · dukpy · groovy · telepath · Js2Py · lesscpy · Js2Py-3.13 · pyjsparser · quickjs-rs · quickjs