Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Python ⇔ JavaScript bindings using high level embind and pybind11

License

Notifications You must be signed in to change notification settings

emscripten-forge/pyjs

Repository files navigation

pyjs

CI CI

Important Notice

The main branch is already using emscripten >=4.x and the experimental channel https://prefix.dev/channels/emscripten-forge-4x. The old emscripten 3.1.73 based branch is available at https://github.com/emscripten-forge/pyjs/tree/emscripten-3.1.73

What is pyjs

pyjs is modern pybind11 + emscripten Embind based Python <-> JavaScript foreign function interface (FFI) for wasm/emscripten compiled Python.

The API is loosly based on the FFI of pyodide.

Full Documentation

See the documentation for a full documentation.

Try it out

Quickstart

Access Javascript from Python:

import pyjs
# hello world 
pyjs.js.console.log("Hello, World!")
# create a JavaScript function to add two numbers
js_function = pyjs.js.Function("a", "b", """
 console.log("Adding", a, "and", b)
 return a + b
""")
# call the function
result = js_function(1, 2)

Access Python from Javascript:

// hello world
pyjs.eval("print('Hello, World!')")
// eval a python expression and get the result
const py_list = pyjs.eval("[i for i in range(10)]")
/// access 
console.log(py_list.get(0)) // same as py_list[0] on the python side

About

Python ⇔ JavaScript bindings using high level embind and pybind11

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 8

AltStyle によって変換されたページ (->オリジナル) /