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.2.tar.gz (10.2 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.2-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wasmjs-0.0.14.0.2.tar.gz
  • Upload date:
  • Size: 10.2 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.2.tar.gz
Algorithm Hash digest
SHA256 609d9e489843a58b63036d9a38672e790cf5771e15e3cbce5daa63e84886ebf8
MD5 525e7a7653bb3d4d270ad4748a5d8157
BLAKE2b-256 bce8f37f3e7a1152984ea3d783c78e877d20ac8d6c1ee59106e18fbbd5d3899c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wasmjs-0.0.14.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.3 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 276573ccc5afff6721b531f5911d82172c233a18552f9a153966d683efe11491
MD5 b28b83bdf3508478c582e86803a18b23
BLAKE2b-256 fb33db1b214b52183f6d89c084ea213301e7325696b43e52a4d366ef6c3eb1ea

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