Metadata-Version: 2.4
Name: yowasp-runtime
Version: 1.85
Summary: Common runtime for YoWASP packages
Author-email: Catherine <whitequark@whitequark.org>
License-Expression: ISC
Project-URL: Homepage, https://yowasp.org/
Project-URL: Source Code, https://github.com/YoWASP/runtime-py
Project-URL: Bug Tracker, https://github.com/YoWASP/runtime-py/issues
Requires-Python: ~=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: importlib_resources; python_version < "3.9"
Requires-Dist: platformdirs<5,>=3.0
Requires-Dist: wasmtime<43,>=21.0.0
Dynamic: license-file

YoWASP Python runtime
=====================

This package is an internal support package for the [YoWASP project][yowasp]. It handles interfacing with the [WebAssembly][] runtime and the supported operating systems. Do not depend on this package in your own code.

[webassembly]: https://webassembly.org/
[yowasp]: https://yowasp.github.io/


Configuration
-------------

The YoWASP runtime can be configured through environment variables:

### `YOWASP_CACHE_DIR`

YoWASP ships application code as architecture-independent WebAssembly and compiles it to architecture-specific machine code on first run. To make subsequent runs faster, it saves the generated machine code to a cache, which by default is located at `%LocalAppData%\YoWASP\Cache` (on Windows), `$HOME/.cache/YoWASP` (on Linux), or `$HOME/Library/Caches/YoWASP` (on macOS). This location can be customized by setting the `YOWASP_CACHE_DIR` environment variable.

### `YOWASP_MOUNT`

YoWASP isolates the applications from the underlying operating system such that only filesystem access is possible. By default, the application can access the entire filesystem and host paths can be used unmodified (however on Windows, all paths must use `/` as the path separator). If the environment variable `YOWASP_MOUNT` is set, then the application can only access the paths specified in that environment variable and their descendants. Paths above the ones specified cannot be accessed, even using extra `..` segments.

The syntax for specifying mounts is `YOWASP_MOUNT=<mountpoint1>=<path1>[:<mountpoint2>=<path2>[:...]]`. That is, mounts are specified as `<mountpoint>=<path>` pairs separated by `:` symbols, where operating system path `<path>` becomes accesible by the application at `<mountpoint>`.


License
-------

This package is covered by the [ISC license](LICENSE.txt).
