Polywrap Wasm
Project description
This package contains the runtime for executing Wasm wrappers.
Quickstart
The following code snippet demonstrates how to use the runtime to execute a Wasm wrapper.
Imports
>>> import os >>> from typing import cast >>> from polywrap_core import Uri, FileReader, InvokerClient >>> from polywrap_wasm import WasmWrapper >>> from polywrap_msgpack import msgpack_decode >>> from polywrap_manifest import deserialize_wrap_manifest, AnyWrapManifest
Create a Wasm wrapper
>>> path_to_wrapper = os.path.join(os.path.dirname(__file__), "..", "tests", "cases", "simple") >>> assert os.path.exists(path_to_wrapper) >>> with open(os.path.join(path_to_wrapper, "wrap.wasm"), "rb") as f: ... wasm_module = f.read() >>> assert isinstance(wasm_module, bytes) >>> with open(os.path.join(path_to_wrapper, "wrap.info"), "rb") as f: ... manifest = deserialize_wrap_manifest(f.read()) >>> assert isinstance(manifest, AnyWrapManifest) >>> wrapper = WasmWrapper( ... cast(FileReader, NotImplemented), ... wasm_module, ... manifest ... ) >>> assert isinstance(wrapper, WasmWrapper)
Invocation
>>> message = "Hello, World!" >>> args = {"arg": message} >>> result = wrapper.invoke( ... uri=Uri.from_str("wrap://authority/path"), ... method="simpleMethod", ... args=args, ... client=cast(InvokerClient, NotImplemented), ... ) >>> assert result.encoded is True >>> assert msgpack_decode(cast(bytes, result.result)) == message
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
polywrap_wasm-0.1.0b7.tar.gz
(13.4 kB
view hashes)
Built Distribution
Close
Hashes for polywrap_wasm-0.1.0b7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d81721b8849fcae2698b4a0b370e75aa97e0a7703ebf27982d82709ee0986630 |
|
MD5 | 612aa8c80ee541437220e7fa91db53ac |
|
BLAKE2b-256 | 5a8a5834da9c1f5bb7775f59f4ed537082028335cc8f618b1e3a435570479e1f |