You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[PythonMonkey](https://pythonmonkey.io) is a Mozilla [SpiderMonkey](https://firefox-source-docs.mozilla.org/js/index.html) JavaScript engine embedded into the Python VM,
7
-
using the Python engine to provide the JS host environment.
6
+
[PythonMonkey](https://pythonmonkey.io) is a Mozilla [SpiderMonkey](https://firefox-source-docs.mozilla.org/js/index.html) JavaScript engine embedded into the Python Runtime,
7
+
using the Python engine to provide the Javascript host environment.
8
8
9
-
This product is in an early stage, approximately 80% to MVP as of July 2023. It is under active development by [Distributive](https://distributive.network/).
9
+
We feature JavaScript Array and Object methods on Python List and Dictionaries using the cPython C API, and the inverse using the Mozilla Firefox Spidermonkey JavaScript C++ API.
10
+
11
+
This product is in an intermediate stage, approximately 90% to MVP as of January 2024. It is under active development by [Distributive](https://distributive.network/).
10
12
External contributions and feedback are welcome and encouraged.
- Make writing code in either JS or Python a developer preference
25
27
- Use JavaScript libraries from Python
26
28
- Use Python libraries from JavaScript
27
-
- Same process runs both JS and Python VMs - no serialization, pipes, etc
29
+
- The same process runs both JavaScript and Python VirtualMachines - no serialization, pipes, etc
30
+
- Python Lists and Dicts behave as Javacript Arrays and Objects, and vice-versa, fully adapting to the given context.
28
31
29
32
### Data Interchange
30
-
- Strings share immutable backing stores whenever possible (when allocating engine choses UCS-2 or Latin-1 internal string representation) to keep memory consumption under control, and to make it possible to move very large strings between JS and Python library code without memory-copy overhead.
33
+
- Strings share immutable backing stores whenever possible (when allocating engine choses UCS-2 or Latin-1 internal string representation) to keep memory consumption under control, and to make it possible to move very large strings between JavaScript and Python library code without memory-copy overhead.
31
34
- TypedArrays share mutable backing stores.
32
-
- JS objects are represented by Python dicts
35
+
- JS objects are represented by Python dicts through a Dict subclass for optimal compatibility. Similarly for JS arrays and Python lists.
33
36
- JS Date objects are represented by Python datetime.datetime objects
34
37
- Intrinsics (boolean, number, null, undefined) are passed by value
35
38
- JS Functions are automatically wrapped so that they behave like Python functions, and vice-versa
36
-
- Python Lists are represented by JS true Arrays
39
+
- Python Lists are represented by JS true arrays and support all Array methods through a JS API Proxy. Similarly for Python Dicts and JS objects.
37
40
38
41
### Roadmap
39
42
-[done] JS instrinsics coerce to Python intrinsics
0 commit comments