-
Notifications
You must be signed in to change notification settings - Fork 0
4 Questions \ Concerns \ Challenges
Eric Snow edited this page Aug 28, 2018
·
1 revision
- general
- Web vs. not Web
- interop
- How to expose Python in JS/TS?
- How to expose JS/TS in Python?
- runtime
- What part of runtime is unsupported?
- Performance Penalty
- modules
- What stdlib modules are unavailable?
- .py/extension import won't work without adding an importer that can handle JS sandbox
- How to provide stdlib?
- How to support Python (.py) modules?
- How to support extension modules?
- Python server
- Interact via Socket vs. stdio
- Lifecycle Management
- JS/TS API
- Python API
...
Prior Art:
- Jython
- IronPython
- brython
- batavia
- transcrypt
- ...
- "py" JS module:
.exec(src: string): any
- "py" JS module:
.run(argv, ...)
(a la subprocess) - "py" JS module:
.import(module: string): Module
(expose module attrs to JS) - native JS modules / objects
- ...
- "js" (or "ts") Python module to expose JS globals
- "js" Python module:
.require(module)
(expose JS module to Python) - ...
Prior art:
- brython
- transcrypt
- batavia
- micropython
- ...
- subinterpreters?
- threads?
- subprocesses?
Native JS/WASM will be faster (and use less memory) than artifacts compiled/transpiled from Python.
Prior art:
- brython
- transcrypt
- batavia
- micropython
- ...
- pre-build into Python runtime (i.e. frozen/builtin)
- ship zipped along with Python (.py only)
- pre-build into Python runtime (i.e. frozen)
- ship zipped along with Python (.py only)
- pre-build into Python runtime (i.e. builtin)
- transpile to JS
- compile to WASM
...
e.g. launch; don't leak processes
...
...