# <img height="48" src="https://raw.githubusercontent.com/wasmerio/wasmer/master/assets/logo.png" alt="Wasmer logo" valign="middle"> Wasmer Python [![PyPI version](https://img.shields.io/pypi/v/wasmer)](https://badge.fury.io/py/wasmer) [![Wasmer Python Documentation](https://img.shields.io/badge/docs-read-green)](https://wasmerio.github.io/wasmer-python/api/wasmer/) [![Wasmer PyPI downloads](https://pepy.tech/badge/wasmer)](https://pypi.org/project/wasmer/) [![Wasmer Slack Channel](https://img.shields.io/static/v1?label=chat&message=on%20Slack&color=green)](https://slack.wasmer.io)
A complete and mature WebAssembly runtime for Python based on
[Wasmer](https://github.com/wasmerio/wasmer).
Features:
* **Easy to use**: The `wasmer` API mimics the standard WebAssembly API,
* **Fast**: `wasmer` executes the WebAssembly modules as fast as
possible, close to **native speed**,
* **Safe**: All calls to WebAssembly will be fast, but more
importantly, completely safe and sandboxed,
* **Modular**: `wasmer` can compile the WebAssembly modules with
different engines or compiler.
**Documentation**: [browse the detailed API
documentation](https://wasmerio.github.io/wasmer-python/api/wasmer/wasmer.html) full of
examples.
**Examples** as tutorials: [browse the `examples/`
directory](https://github.com/wasmerio/wasmer-python/tree/master/examples),
it's the best place for a complete introduction!
## Quick Introduction
The `wasmer` package brings the required API to execute WebAssembly
modules. In a nutshell, `wasmer` compiles the WebAssembly module into
compiled code, and then executes it. `wasmer` is designed to work in
various environments and platforms: From nano single-board computers
to large and powerful servers, including more exotic ones. To address
those requirements, Wasmer provides 2 engines and 3 compilers.
Succinctly, an _engine_ is responsible to drive the _compilation_ and
the _execution_ of a WebAssembly module. By extension, a _headless_
engine can only execute a WebAssembly module, i.e. a module that has
previously been compiled, or compiled, serialized and deserialized. By
default, the `wasmer` package comes with 2 headless engines:
1. `wasmer.engine.JIT`, the compiled machine code lives in memory,
2. `wasmer.engine.Native`, the compiled machine code lives in a shared
object file (`.so`, `.dylib`, or `.dll`), and is natively executed.
Because `wasmer` does not embed compilers in its package, engines are
headless, i.e. they can't compile WebAssembly module; they can only
execute them. Compilers live in their own standalone packages. Let's
briefly introduce them:
| Compiler package | Description | PyPi |
|-|-|-|
| `wasmer_compiler_singlepass` | Super fast compilation times, slower execution times. Not prone to JIT-bombs. *Ideal for blockchains* | [![On PyPi](https://img.shields.io/pypi/v/wasmer_compiler_singlepass)](https://pypi.org/project/wasmer_compiler_singlepass/) [![Downloads](https://pepy.tech/badge/wasmer_compiler_singlepass)](https://pypi.org/project/wasmer_compiler_singlepass/) |
| `wasmer_compiler_cranelift` | Fast compilation times, fast execution times. *Ideal for development* | [![On PyPi](https://img.shields.io/pypi/v/wasmer_compiler_cranelift)](https://pypi.org/project/wasmer_compiler_cranelift/) [![Downloads](https://pepy.tech/badge/wasmer_compiler_cranelift)](https://pypi.org/project/wasmer_compiler_cranelift/) |
| `wasmer_compiler_llvm` | Slow compilation times, very fast execution times (close to native, sometimes faster). *Ideal for Production* | [![On PyPi](https://img.shields.io/pypi/v/wasmer_compiler_llvm)](https://pypi.org/project/wasmer_compiler_llvm/) [![Downloads](https://pepy.tech/badge/wasmer_compiler_llvm)](https://pypi.org/project/wasmer_compiler_llvm/) |
We generally recommend `wasmer_compiler_cranelift` for development
purposes and `wasmer_compiler_llvm` in production.
Learn more by reading [the documentation of the `wasmer.engine`
submodule](https://wasmerio.github.io/wasmer-python/api/wasmer/wasmer.html#engine).
## Install
To install the `wasmer` Python package, and let's say the
`wasmer_compiler_cranelift` compiler, just run those commands in your shell:
```sh
$ pip install wasmer==1.1.0
$ pip install wasmer_compiler_cranelift==1.1.0
```
And you're ready to get fun!
## Example
We highly recommend to read the
[`examples/`](https://github.com/wasmerio/wasmer-python/tree/master/examples)
directory, which contains a sequence of examples/tutorials. It's the
best place to learn by reading examples.
But for the most eager of you, and we know you're numerous you
mischievous, there is a quick toy program in
`examples/appendices/simple.rs`, written in Rust:
```rust
#[no_mangle]
pub extern fn sum(x: i32, y: i32) -> i32 {
x + y
}
```
After compilation to WebAssembly, the
[`examples/appendices/simple.wasm`](https://github.com/wasmerio/wasmer-python/blob/master/examples/appendices/simple.wasm)
binary file is generated. ([Download
it](https://github.com/wasmerio/wasmer-python/raw/master/examples/appendices/simple.wasm)).
Then, we can execute it in Python:
```python
from wasmer import engine, Store, Module, Instance
from wasmer_compiler_cranelift import Compiler
# Let's define the store, that holds the engine, that holds the compiler.
store = Store(engine.JIT(Compiler))
# Let's compile the module to be able to execute it!
module = Module(store, open('simple.wasm', 'rb').read())
# Now the module is compiled, we can instantiate it.
instance = Instance(module)
# Call the exported `sum` function.
result = instance.exports.sum(5, 37)
print(result) # 42!
```
And then, finally, enjoy by running:
```sh
$ python examples/appendices/simple.py
```
# Development
The Python extension is written in [Rust], with [`pyo3`] and
[`maturin`].
First, you need to install Rust and Python. We will not make you the
affront to explain to you how to install Python (if you really need,
check [`pyenv`](https://github.com/pyenv/pyenv/)). For Rust though, we
advise to use [`rustup`](https://rustup.rs/), then:
```sh
$ rustup install stable
```
To set up your environment, you'll need [`just`], and then, install
the prelude of this project:
```sh
$ cargo install just
$ just --list # to learn about all the available recipes
$ just prelude
```
It will install `pyo3` and `maturin` for Python and for Rust. It will
also install [`virtualenv`].
Then, simply run:
```sh
$ source .env/bin/activate
$ just build api
$ just build compiler-cranelift
$ python examples/appendices/simple.py
```
## Supported platforms
We try to provide wheels for as many platforms and architectures as
possible. For the moment, here are the supported platforms and
architectures:
<table>
<thead>
<tr>
<th>Platform</th>
<th>Architecture</th>
<th>Triple</th>
<th colspan="2">Packages</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="8">Linux</td>
<td rowspan="4"><code>amd64</code></td>
<td rowspan="4"><code>x86_64-unknown-linux-gnu</code></td>
<td><code>wasmer</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_singlepass</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_cranelift</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_llvm</code></td>
<td>✅</td>
</tr>
<tr>
<td rowspan="4"><code>aarch64</code></td>
<td rowspan="4"><code>aarch64-unknown-linux-gnu</code></td>
<td><code>wasmer</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_singlepass</code></td>
<td>❌ <sup><a href="#wheels-note-1">1</a></sup></td>
</tr>
<tr>
<td><code>wasmer_compiler_cranelift</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_llvm</code></td>
<td>✅</td>
</tr>
<tr>
<td rowspan="4">Darwin</td>
<td rowspan="4"><code>amd64</code></td>
<td rowspan="4"><code>x86_64-apple-darwin</code></td>
<td><code>wasmer</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_singlepass</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_cranelift</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_llvm</code></td>
<td>✅</td>
</tr>
<tr>
<td rowspan="4">Windows</td>
<td rowspan="4"><code>amd64</code></td>
<td rowspan="4"><code>x86_64-pc-windows-msvc</code></td>
<td><code>wasmer</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_singlepass</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_cranelift</code></td>
<td>✅</td>
</tr>
<tr>
<td><code>wasmer_compiler_llvm</code></td>
<td>❌ <sup><a href="#wheels-note-2">2</a></sup></td>
</tr>
</tbody>
</table>
Notes:
<ul>
<li id="wheels-note-1"><sup>1</sup>
<code>wasmer_compiler_singlepass</code> does not support
<code>aarch64</code> for the moment</li>
<li id="wheels-note-2"><sup>2</sup>
<code>wasmer_compiler_llvm</code> is not packaging properly on
Windows for the moment</li>
</ul>
Wheels are all built for the following Python versions:
* Python 3.7,
* Python 3.8.
* Python 3.9.
* Python 3.10,
<details>
<summary>Learn about the “fallback” <code>py3-none-any</code> wheel</summary>
### `py3-none-any.whl`
A special `wasmer-$(version)-py3-none-any` wheel is built as a
fallback. The `wasmer` libray will be installable, but it will raise
an `ImportError` exception saying that “Wasmer is not available on
this system”.
This wheel will be installed if none matches before (learn more by
reading the [PEP 425, Compatibility Tags for Built
Distributions](https://www.python.org/dev/peps/pep-0425/)).
</details>
## Testing
Build all the packages and run the tests:
```sh
$ just build-all
$ just test
```
# What is WebAssembly?
Quoting [the WebAssembly site](https://webassembly.org/):
> WebAssembly (abbreviated Wasm) is a binary instruction format for a
> stack-based virtual machine. Wasm is designed as a portable target
> for compilation of high-level languages like C/C++/Rust, enabling
> deployment on the web for client and server applications.
About speed:
> WebAssembly aims to execute at native speed by taking advantage of
> [common hardware
> capabilities](https://webassembly.org/docs/portability/#assumptions-for-efficient-execution)
> available on a wide range of platforms.
About safety:
> WebAssembly describes a memory-safe, sandboxed [execution
> environment](https://webassembly.org/docs/semantics/#linear-memory) […].
# License
The entire project is under the MIT License. Please read [the
`LICENSE` file][license].
[`pyo3`]: https://github.com/PyO3/pyo3
[`maturin`]: https://github.com/PyO3/maturin
[`virtualenv`]: https://virtualenv.pypa.io/
[`just`]: https://github.com/casey/just/
[license]: https://github.com/wasmerio/wasmer/blob/master/LICENSE
[Rust]: https://www.rust-lang.org/
[compilers]: https://medium.com/wasmer/a-webassembly-compiler-tale-9ef37aa3b537
Raw data
{
"_id": null,
"home_page": "",
"name": "wasmer",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,extension,webassembly",
"author": "Wasmer Engineering Team <engineering@wasmer.io>",
"author_email": "Wasmer Engineering Team <engineering@wasmer.io>",
"download_url": "",
"platform": "",
"description": "# <img height=\"48\" src=\"https://raw.githubusercontent.com/wasmerio/wasmer/master/assets/logo.png\" alt=\"Wasmer logo\" valign=\"middle\"> Wasmer Python [![PyPI version](https://img.shields.io/pypi/v/wasmer)](https://badge.fury.io/py/wasmer) [![Wasmer Python Documentation](https://img.shields.io/badge/docs-read-green)](https://wasmerio.github.io/wasmer-python/api/wasmer/) [![Wasmer PyPI downloads](https://pepy.tech/badge/wasmer)](https://pypi.org/project/wasmer/) [![Wasmer Slack Channel](https://img.shields.io/static/v1?label=chat&message=on%20Slack&color=green)](https://slack.wasmer.io)\n\nA complete and mature WebAssembly runtime for Python based on\n[Wasmer](https://github.com/wasmerio/wasmer).\n\nFeatures:\n\n * **Easy to use**: The `wasmer` API mimics the standard WebAssembly API,\n * **Fast**: `wasmer` executes the WebAssembly modules as fast as\n possible, close to **native speed**,\n * **Safe**: All calls to WebAssembly will be fast, but more\n importantly, completely safe and sandboxed,\n * **Modular**: `wasmer` can compile the WebAssembly modules with\n different engines or compiler.\n\n**Documentation**: [browse the detailed API\ndocumentation](https://wasmerio.github.io/wasmer-python/api/wasmer/wasmer.html) full of\nexamples.\n\n**Examples** as tutorials: [browse the `examples/`\ndirectory](https://github.com/wasmerio/wasmer-python/tree/master/examples),\nit's the best place for a complete introduction!\n\n## Quick Introduction\n\nThe `wasmer` package brings the required API to execute WebAssembly\nmodules. In a nutshell, `wasmer` compiles the WebAssembly module into\ncompiled code, and then executes it. `wasmer` is designed to work in\nvarious environments and platforms: From nano single-board computers\nto large and powerful servers, including more exotic ones. To address\nthose requirements, Wasmer provides 2 engines and 3 compilers.\n\nSuccinctly, an _engine_ is responsible to drive the _compilation_ and\nthe _execution_ of a WebAssembly module. By extension, a _headless_\nengine can only execute a WebAssembly module, i.e. a module that has\npreviously been compiled, or compiled, serialized and deserialized. By\ndefault, the `wasmer` package comes with 2 headless engines:\n\n1. `wasmer.engine.JIT`, the compiled machine code lives in memory,\n2. `wasmer.engine.Native`, the compiled machine code lives in a shared\n object file (`.so`, `.dylib`, or `.dll`), and is natively executed.\n\nBecause `wasmer` does not embed compilers in its package, engines are\nheadless, i.e. they can't compile WebAssembly module; they can only\nexecute them. Compilers live in their own standalone packages. Let's\nbriefly introduce them:\n\n| Compiler package | Description | PyPi |\n|-|-|-|\n| `wasmer_compiler_singlepass` | Super fast compilation times, slower execution times. Not prone to JIT-bombs. *Ideal for blockchains* | [![On PyPi](https://img.shields.io/pypi/v/wasmer_compiler_singlepass)](https://pypi.org/project/wasmer_compiler_singlepass/) [![Downloads](https://pepy.tech/badge/wasmer_compiler_singlepass)](https://pypi.org/project/wasmer_compiler_singlepass/) |\n| `wasmer_compiler_cranelift` | Fast compilation times, fast execution times. *Ideal for development* | [![On PyPi](https://img.shields.io/pypi/v/wasmer_compiler_cranelift)](https://pypi.org/project/wasmer_compiler_cranelift/) [![Downloads](https://pepy.tech/badge/wasmer_compiler_cranelift)](https://pypi.org/project/wasmer_compiler_cranelift/) |\n| `wasmer_compiler_llvm` | Slow compilation times, very fast execution times (close to native, sometimes faster). *Ideal for Production* | [![On PyPi](https://img.shields.io/pypi/v/wasmer_compiler_llvm)](https://pypi.org/project/wasmer_compiler_llvm/) [![Downloads](https://pepy.tech/badge/wasmer_compiler_llvm)](https://pypi.org/project/wasmer_compiler_llvm/) |\n\nWe generally recommend `wasmer_compiler_cranelift` for development\npurposes and `wasmer_compiler_llvm` in production.\n\nLearn more by reading [the documentation of the `wasmer.engine`\nsubmodule](https://wasmerio.github.io/wasmer-python/api/wasmer/wasmer.html#engine).\n\n## Install\n\nTo install the `wasmer` Python package, and let's say the\n`wasmer_compiler_cranelift` compiler, just run those commands in your shell:\n\n```sh\n$ pip install wasmer==1.1.0\n$ pip install wasmer_compiler_cranelift==1.1.0\n```\n\nAnd you're ready to get fun!\n\n## Example\n\nWe highly recommend to read the\n[`examples/`](https://github.com/wasmerio/wasmer-python/tree/master/examples)\ndirectory, which contains a sequence of examples/tutorials. It's the\nbest place to learn by reading examples.\n\nBut for the most eager of you, and we know you're numerous you\nmischievous, there is a quick toy program in\n`examples/appendices/simple.rs`, written in Rust:\n\n```rust\n#[no_mangle]\npub extern fn sum(x: i32, y: i32) -> i32 {\n x + y\n}\n```\n\nAfter compilation to WebAssembly, the\n[`examples/appendices/simple.wasm`](https://github.com/wasmerio/wasmer-python/blob/master/examples/appendices/simple.wasm)\nbinary file is generated. ([Download\nit](https://github.com/wasmerio/wasmer-python/raw/master/examples/appendices/simple.wasm)).\n\nThen, we can execute it in Python:\n\n```python\nfrom wasmer import engine, Store, Module, Instance\nfrom wasmer_compiler_cranelift import Compiler\n\n# Let's define the store, that holds the engine, that holds the compiler.\nstore = Store(engine.JIT(Compiler))\n\n# Let's compile the module to be able to execute it!\nmodule = Module(store, open('simple.wasm', 'rb').read())\n\n# Now the module is compiled, we can instantiate it.\ninstance = Instance(module)\n\n# Call the exported `sum` function.\nresult = instance.exports.sum(5, 37)\n\nprint(result) # 42!\n```\n\nAnd then, finally, enjoy by running:\n\n```sh\n$ python examples/appendices/simple.py\n```\n\n# Development\n\nThe Python extension is written in [Rust], with [`pyo3`] and\n[`maturin`].\n\nFirst, you need to install Rust and Python. We will not make you the\naffront to explain to you how to install Python (if you really need,\ncheck [`pyenv`](https://github.com/pyenv/pyenv/)). For Rust though, we\nadvise to use [`rustup`](https://rustup.rs/), then:\n\n```sh\n$ rustup install stable\n```\n\nTo set up your environment, you'll need [`just`], and then, install\nthe prelude of this project:\n\n```sh\n$ cargo install just\n$ just --list # to learn about all the available recipes\n$ just prelude\n```\n\nIt will install `pyo3` and `maturin` for Python and for Rust. It will\nalso install [`virtualenv`].\n\nThen, simply run:\n\n```sh\n$ source .env/bin/activate\n$ just build api\n$ just build compiler-cranelift\n$ python examples/appendices/simple.py\n```\n\n## Supported platforms\n\nWe try to provide wheels for as many platforms and architectures as\npossible. For the moment, here are the supported platforms and\narchitectures:\n\n<table>\n <thead>\n <tr>\n <th>Platform</th>\n <th>Architecture</th>\n <th>Triple</th>\n <th colspan=\"2\">Packages</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td rowspan=\"8\">Linux</td>\n <td rowspan=\"4\"><code>amd64</code></td>\n <td rowspan=\"4\"><code>x86_64-unknown-linux-gnu</code></td>\n <td><code>wasmer</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_singlepass</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_cranelift</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_llvm</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td rowspan=\"4\"><code>aarch64</code></td>\n <td rowspan=\"4\"><code>aarch64-unknown-linux-gnu</code></td>\n <td><code>wasmer</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_singlepass</code></td>\n <td>\u274c <sup><a href=\"#wheels-note-1\">1</a></sup></td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_cranelift</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_llvm</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td rowspan=\"4\">Darwin</td>\n <td rowspan=\"4\"><code>amd64</code></td>\n <td rowspan=\"4\"><code>x86_64-apple-darwin</code></td>\n <td><code>wasmer</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_singlepass</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_cranelift</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_llvm</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td rowspan=\"4\">Windows</td>\n <td rowspan=\"4\"><code>amd64</code></td>\n <td rowspan=\"4\"><code>x86_64-pc-windows-msvc</code></td>\n <td><code>wasmer</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_singlepass</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_cranelift</code></td>\n <td>\u2705</td>\n </tr>\n <tr>\n <td><code>wasmer_compiler_llvm</code></td>\n <td>\u274c <sup><a href=\"#wheels-note-2\">2</a></sup></td>\n </tr>\n </tbody>\n</table>\n\nNotes:\n\n<ul>\n <li id=\"wheels-note-1\"><sup>1</sup>\n <code>wasmer_compiler_singlepass</code> does not support\n <code>aarch64</code> for the moment</li>\n <li id=\"wheels-note-2\"><sup>2</sup>\n <code>wasmer_compiler_llvm</code> is not packaging properly on\n Windows for the moment</li>\n</ul>\n\nWheels are all built for the following Python versions:\n\n* Python 3.7,\n* Python 3.8.\n* Python 3.9.\n* Python 3.10,\n\n<details>\n<summary>Learn about the \u201cfallback\u201d <code>py3-none-any</code> wheel</summary>\n\n### `py3-none-any.whl`\n\nA special `wasmer-$(version)-py3-none-any` wheel is built as a\nfallback. The `wasmer` libray will be installable, but it will raise\nan `ImportError` exception saying that \u201cWasmer is not available on\nthis system\u201d.\n\nThis wheel will be installed if none matches before (learn more by\nreading the [PEP 425, Compatibility Tags for Built\nDistributions](https://www.python.org/dev/peps/pep-0425/)).\n\n</details>\n\n## Testing\n\nBuild all the packages and run the tests:\n\n```sh\n$ just build-all\n$ just test\n```\n\n# What is WebAssembly?\n\nQuoting [the WebAssembly site](https://webassembly.org/):\n\n> WebAssembly (abbreviated Wasm) is a binary instruction format for a\n> stack-based virtual machine. Wasm is designed as a portable target\n> for compilation of high-level languages like C/C++/Rust, enabling\n> deployment on the web for client and server applications.\n\nAbout speed:\n\n> WebAssembly aims to execute at native speed by taking advantage of\n> [common hardware\n> capabilities](https://webassembly.org/docs/portability/#assumptions-for-efficient-execution)\n> available on a wide range of platforms.\n\nAbout safety:\n\n> WebAssembly describes a memory-safe, sandboxed [execution\n> environment](https://webassembly.org/docs/semantics/#linear-memory) [\u2026].\n\n# License\n\nThe entire project is under the MIT License. Please read [the\n`LICENSE` file][license].\n\n\n[`pyo3`]: https://github.com/PyO3/pyo3\n[`maturin`]: https://github.com/PyO3/maturin\n[`virtualenv`]: https://virtualenv.pypa.io/\n[`just`]: https://github.com/casey/just/\n[license]: https://github.com/wasmerio/wasmer/blob/master/LICENSE\n[Rust]: https://www.rust-lang.org/\n[compilers]: https://medium.com/wasmer/a-webassembly-compiler-tale-9ef37aa3b537\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Python extension to run WebAssembly binaries",
"version": "1.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/wasmerio/wasmer-python/issues",
"Documentation": "https://github.com/wasmerio/wasmer-python/",
"Source Code": "https://github.com/wasmerio/wasmer-python"
},
"split_keywords": [
"python",
"extension",
"webassembly"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cf0a9e5efd92e5cf24d5c08030b4f76dcdf10cbc55c639bbf4df8aeb0c76d448",
"md5": "453d687c73340fa0eb7495bf545292c8",
"sha256": "c2af4b907ae2dabcac41e316e811d5937c93adf1f8b05c5d49427f8ce0f37630"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp310-cp310-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "453d687c73340fa0eb7495bf545292c8",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 1465236,
"upload_time": "2022-01-07T23:23:52",
"upload_time_iso_8601": "2022-01-07T23:23:52.601467Z",
"url": "https://files.pythonhosted.org/packages/cf/0a/9e5efd92e5cf24d5c08030b4f76dcdf10cbc55c639bbf4df8aeb0c76d448/wasmer-1.1.0-cp310-cp310-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a7793f53cf611cbdd04a9b9997bf3ad18e5602350f90d404c162fbf3112684f2",
"md5": "fce28ee1bf37ec5c254d94bee67c3c64",
"sha256": "ab1ae980021e5ec0bf0c6cdd3b979b1d15a5f3eb2b8a32da8dcb1156e4a1e484"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp310-cp310-manylinux_2_24_x86_64.whl",
"has_sig": false,
"md5_digest": "fce28ee1bf37ec5c254d94bee67c3c64",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 1603286,
"upload_time": "2022-01-07T23:23:54",
"upload_time_iso_8601": "2022-01-07T23:23:54.467516Z",
"url": "https://files.pythonhosted.org/packages/a7/79/3f53cf611cbdd04a9b9997bf3ad18e5602350f90d404c162fbf3112684f2/wasmer-1.1.0-cp310-cp310-manylinux_2_24_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2470ca7bf7a3f85d8de745eca73e40bc83cf86bb52ea494b33721fc0572889ab",
"md5": "cae83dc46379ae9e7f71feaa6d4da6a2",
"sha256": "d0d93aec6215893d33e803ef0a8d37bf948c585dd80ba0e23a83fafee820bc03"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp310-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "cae83dc46379ae9e7f71feaa6d4da6a2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 1435852,
"upload_time": "2022-01-07T23:23:56",
"upload_time_iso_8601": "2022-01-07T23:23:56.134755Z",
"url": "https://files.pythonhosted.org/packages/24/70/ca7bf7a3f85d8de745eca73e40bc83cf86bb52ea494b33721fc0572889ab/wasmer-1.1.0-cp310-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7121091c53b34e312bea376cb4a5806834f84e674e7f78d52eb92423cedf8a5f",
"md5": "b1a259efaa6e55f138ae85f5fabcccc0",
"sha256": "1e63d16bd6e2e2272d8721647831de5c537e0bb08002ee6d7abf167ec02d5178"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp37-cp37m-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "b1a259efaa6e55f138ae85f5fabcccc0",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 1466139,
"upload_time": "2022-01-07T23:23:57",
"upload_time_iso_8601": "2022-01-07T23:23:57.450385Z",
"url": "https://files.pythonhosted.org/packages/71/21/091c53b34e312bea376cb4a5806834f84e674e7f78d52eb92423cedf8a5f/wasmer-1.1.0-cp37-cp37m-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5c7f9b96442cc3984baa7a5e5651901202176cb30fe879fef0c4f79020566262",
"md5": "8fb5a3cd7148fb716f869510b8b73d3b",
"sha256": "85e6a5bf44853e8e6a12e947ee3412da9e84f7ce49fc165ba5dbd293e9c5c405"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp37-cp37m-manylinux_2_24_x86_64.whl",
"has_sig": false,
"md5_digest": "8fb5a3cd7148fb716f869510b8b73d3b",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 1607108,
"upload_time": "2022-01-07T23:23:58",
"upload_time_iso_8601": "2022-01-07T23:23:58.577029Z",
"url": "https://files.pythonhosted.org/packages/5c/7f/9b96442cc3984baa7a5e5651901202176cb30fe879fef0c4f79020566262/wasmer-1.1.0-cp37-cp37m-manylinux_2_24_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d6389f92d6a54aa11fcb74e3dd1a790a2ed531ff267ed3d2e256480ad00ce26b",
"md5": "c29a7ac98d9f5cda38a598c10bec264d",
"sha256": "a182a6eca9b46d895b4985fc822fab8da3d2f84fab74ca27e55a7430a7fcf336"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp37-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "c29a7ac98d9f5cda38a598c10bec264d",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 1437406,
"upload_time": "2022-01-07T23:23:59",
"upload_time_iso_8601": "2022-01-07T23:23:59.957012Z",
"url": "https://files.pythonhosted.org/packages/d6/38/9f92d6a54aa11fcb74e3dd1a790a2ed531ff267ed3d2e256480ad00ce26b/wasmer-1.1.0-cp37-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a177e8f9b4e32fcdf2d54dfab67e26cc7557a094e85817281e8f203294d4ea52",
"md5": "e34b6cf9747334bcc7732aea8b52808f",
"sha256": "214d9a3cfb577ea9449eb2b5f13adceae34c55365e4c3d930066beb86a7f67bc"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp38-cp38-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "e34b6cf9747334bcc7732aea8b52808f",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 1466362,
"upload_time": "2022-01-07T23:24:01",
"upload_time_iso_8601": "2022-01-07T23:24:01.685302Z",
"url": "https://files.pythonhosted.org/packages/a1/77/e8f9b4e32fcdf2d54dfab67e26cc7557a094e85817281e8f203294d4ea52/wasmer-1.1.0-cp38-cp38-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "93f597ecad043c138f48c37ce4f0fa782831b5d2dbb3f7d80031f07105b9e7ba",
"md5": "1549f14af83dce9a491e617455227a60",
"sha256": "b9e5605552bd7d2bc6337519b176defe83bc69b98abf3caaaefa4f7ec231d18a"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp38-cp38-manylinux_2_24_x86_64.whl",
"has_sig": false,
"md5_digest": "1549f14af83dce9a491e617455227a60",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 1606982,
"upload_time": "2022-01-07T23:24:03",
"upload_time_iso_8601": "2022-01-07T23:24:03.002661Z",
"url": "https://files.pythonhosted.org/packages/93/f5/97ecad043c138f48c37ce4f0fa782831b5d2dbb3f7d80031f07105b9e7ba/wasmer-1.1.0-cp38-cp38-manylinux_2_24_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7fd71d346733b1c32dc6a95053e09baa9979322dc09fd5273b3db328c547f059",
"md5": "afaa19be3102112f4668f9deed0090a6",
"sha256": "20b5190112e2e94a8947967f2bc683c9685855d0f34130d8434c87a55216a3bd"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp38-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "afaa19be3102112f4668f9deed0090a6",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 1437782,
"upload_time": "2022-01-07T23:24:04",
"upload_time_iso_8601": "2022-01-07T23:24:04.257526Z",
"url": "https://files.pythonhosted.org/packages/7f/d7/1d346733b1c32dc6a95053e09baa9979322dc09fd5273b3db328c547f059/wasmer-1.1.0-cp38-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1242142b95b68e3cb9f1b49174677e1861575a47fdac0221f46d9a8631d2b469",
"md5": "f3277357137c045fcfecdcc6ac6135d4",
"sha256": "ee442f0970f40ec5e32011c92fd753fb2061da0faa13de13fafc730c31be34e3"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp39-cp39-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "f3277357137c045fcfecdcc6ac6135d4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 1465895,
"upload_time": "2022-01-07T23:24:05",
"upload_time_iso_8601": "2022-01-07T23:24:05.663354Z",
"url": "https://files.pythonhosted.org/packages/12/42/142b95b68e3cb9f1b49174677e1861575a47fdac0221f46d9a8631d2b469/wasmer-1.1.0-cp39-cp39-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f7d1502e40f1c63c8ddcfc9c5dee41af1c109c0cc0373e176c476cf46c205b21",
"md5": "155b264858ad8316084f20b34880a706",
"sha256": "aa112198b743cff2e391230436813fb4b244a24443e37866522b7197e3a034da"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "155b264858ad8316084f20b34880a706",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 1299323,
"upload_time": "2022-01-10T10:28:16",
"upload_time_iso_8601": "2022-01-10T10:28:16.133366Z",
"url": "https://files.pythonhosted.org/packages/f7/d1/502e40f1c63c8ddcfc9c5dee41af1c109c0cc0373e176c476cf46c205b21/wasmer-1.1.0-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dda66f9cf77500073969c96afd626857694418d707cc97c15705665250420c67",
"md5": "a4d98f3ff8a72b3170e8d49ddd72df40",
"sha256": "c0b37117f6d3ff51ee96431c7d224d99799b08d174e30fcd0fcd7e2e3cb8140c"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp39-cp39-manylinux_2_24_x86_64.whl",
"has_sig": false,
"md5_digest": "a4d98f3ff8a72b3170e8d49ddd72df40",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 1605224,
"upload_time": "2022-01-07T23:24:06",
"upload_time_iso_8601": "2022-01-07T23:24:06.793266Z",
"url": "https://files.pythonhosted.org/packages/dd/a6/6f9cf77500073969c96afd626857694418d707cc97c15705665250420c67/wasmer-1.1.0-cp39-cp39-manylinux_2_24_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b032f6978008cdfd7b932a9ae7dc233688f0a4db29b73b59c23d9182731d57a3",
"md5": "4737eb60ac0b839862563a13b922231e",
"sha256": "a0a4730ec4907a4cb0d9d4a77ea2608c2c814f22a22b73fc80be0f110e014836"
},
"downloads": -1,
"filename": "wasmer-1.1.0-cp39-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "4737eb60ac0b839862563a13b922231e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 1437240,
"upload_time": "2022-01-07T23:24:08",
"upload_time_iso_8601": "2022-01-07T23:24:08.491188Z",
"url": "https://files.pythonhosted.org/packages/b0/32/f6978008cdfd7b932a9ae7dc233688f0a4db29b73b59c23d9182731d57a3/wasmer-1.1.0-cp39-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "396b30e25924cae7add377f5601e71c778e9a1e515c7a58291f52756c1bb7e87",
"md5": "ffdb0cf30e3528769d055b56e60a9073",
"sha256": "2caf8c67feae9cd4246421551036917811c446da4f27ad4c989521ef42751931"
},
"downloads": -1,
"filename": "wasmer-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ffdb0cf30e3528769d055b56e60a9073",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 1617,
"upload_time": "2022-01-07T23:24:10",
"upload_time_iso_8601": "2022-01-07T23:24:10.046655Z",
"url": "https://files.pythonhosted.org/packages/39/6b/30e25924cae7add377f5601e71c778e9a1e515c7a58291f52756c1bb7e87/wasmer-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-01-07 23:23:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wasmerio",
"github_project": "wasmer-python",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "wasmer"
}