Metadata-Version: 2.1
Name: yowasp-runtime
Version: 1.64
Summary: Common runtime for YoWASP packages
Author-email: Catherine <whitequark@whitequark.org>
License: ISC License
        
        Copyright (C) Catherine <whitequark@whitequark.org>
        
        Permission to use, copy, modify, and/or distribute this software for any
        purpose with or without fee is hereby granted, provided that the above
        copyright notice and this permission notice appear in all copies.
        
        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        
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
Classifier: License :: OSI Approved :: ISC License (ISCL)
Requires-Python: ~=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: platformdirs<5,>=3.0
Requires-Dist: wasmtime<25,>=21.0.0
Requires-Dist: importlib-resources; python_version < "3.9"

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).
