Skip to main content

Simple wrapper around QuickJS-NG's qjs-wasi-reactor.wasm.

Project description

wasmjs

Simple Python wrapper around QuickJS-NG's qjs-wasi-reactor.wasm.

Quickstart

$ python -m venv my-project
$ source my-project/bin/activate
$ pip install wasmjs
$ python
>>> from wasmjs import wasmjs
>>> js = wasmjs.WasmJS()
>>> js.eval('1 + 2')
3
>>> js.eval('("hello" + "there").toUpperCase()')
'HELLOTHERE'
>>> js.eval('({one: 1, two: 2})')
{'one': 1, 'two': 2}

Structure

qjs-wasi-reactor.wasm is essentially 3 build targets statically linked together:

The API bindings for each component are separated into:

  • WasmFile
  • api.wasilibc
    • malloc that changes the return type of wasi-libc's malloc from an int32 to a uint32, etc.
  • api.memutil
    • Convenience functions to get strings and other complex types into and out of the Wasm virtual machine.
  • api.qjs
    • JS_Eval that keeps track of the global context, etc.
  • api.js
    • Convenience functions to handle all of the multi-step qjs flows.
  • jsvalueutil
    • All of the logic needed to get data into and out of the JS virtual machine (inside the Wasm virtual machine).
  • WasmJS
    • Convenience layer to simplify all of the above.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wasmjs-0.0.14.0.3.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wasmjs-0.0.14.0.3-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file wasmjs-0.0.14.0.3.tar.gz.

File metadata

  • Download URL: wasmjs-0.0.14.0.3.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for wasmjs-0.0.14.0.3.tar.gz
Algorithm Hash digest
SHA256 8dfec91b6d4b852d5becedbb49c8404927c0f95efbfa1ab1d8d417bd5af56ac2
MD5 cc42d308efac3709e2729690743c10a9
BLAKE2b-256 f05e1a56d7fd29e025dfcced593165574f3e0070b25b05c5d9e982f4e5e93d6d

See more details on using hashes here.

File details

Details for the file wasmjs-0.0.14.0.3-py3-none-any.whl.

File metadata

  • Download URL: wasmjs-0.0.14.0.3-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for wasmjs-0.0.14.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b0d072e4ab03ac7dc0786613a94b839682a2bfe0eaeaf6d02b8da8f3eebb9172
MD5 2ea66107e8851fbd4623aa8f609b6014
BLAKE2b-256 19864d89f5f25279e550683acb4061f95492c40c9fb5d23fa964dd03ca1c6a38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page