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.15.0.1.tar.gz (10.5 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.15.0.1-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wasmjs-0.0.15.0.1.tar.gz
  • Upload date:
  • Size: 10.5 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.15.0.1.tar.gz
Algorithm Hash digest
SHA256 a8df831c528002f2fa72c8c97962bf678d26992351a287fc600a42d3f7bf9663
MD5 b97d6d505ef949e9398cfc3e23159715
BLAKE2b-256 4eccf71a56c57bb552a3e6e683cd0076dcf3869df55d2a57d361d62810bed40c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wasmjs-0.0.15.0.1-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.15.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e0f4c105074a7fd93d5f7ab13cd4ac0964eb91240cc16efc3076b2d4b408c051
MD5 116556932efbe3c0d273e907094450b0
BLAKE2b-256 77d685113eddfea04cdc3d383fe3a1f359069e50a1b2bad8ac7a27b4604d9aec

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