Oven logo

Oven

Published

The Cranelift compiler for the `wasmer` package (to compile WebAssembly module)

pip install wasmer-compiler-cranelift

Package Downloads

Weekly DownloadsMonthly Downloads

Requires Python

Dependencies

    Wasmer logo Wasmer Python, the Cranelift compiler PyPI version Wasmer Python Documentation Wasmer PyPI downloads Wasmer Slack Channel

    wasmer is a complete and mature WebAssembly runtime for Python. wasmer_compiler_cranelift provides the Cranelift compiler to wasmer, so that wasmer is able to compile WebAssembly module.

    Other compilers exist:

    • wasmer_compiler_llvm,
    • wasmer_compiler_singlepass.

    To get a more complete view, please see the documentation of the wasmer package itself.

    Install

    This package must be used with the wasmer package, thus:

    $ pip install wasmer
    $ pip install wasmer_compiler_cranelift
    

    Usage

    Any engines in wasmer.engine can take the wasmer_compiler_cranelift.Compiler class as argument:

    from wasmer import engine, Store, Module, Instance
    from wasmer_compiler_cranelift import Compiler
    
    # Let's use the Cranelift compiler with the JIT engine…
    store = Store(engine.JIT(Compiler))
    
    # … or with the native engine!
    store = Store(engine.Native(Compiler))
    
    # And now, compile the module.
    module = Module(store, open('my_program.wasm', 'rb').read())
    
    # Now it's compiled, let's instantiate it.
    instance = Instance(module)
    
    # And get fun, for example by calling the `sum` exported function!
    print(instance.exports.sum(1, 2))
    

    Documentation

    Browse the documentation at https://wasmerio.github.io/wasmer-python/api/wasmer_compiler_cranelift/.

    Alternatively, run just build compiler-cranelift followed by just doc to generate the documentation inside docs/api/wasmer_compiler_cranelift.html.