# `wasmer-compiler-llvm` [![Build Status](https://github.com/wasmerio/wasmer/workflows/build/badge.svg?style=flat-square)](https://github.com/wasmerio/wasmer/actions?query=workflow%3Abuild) [![Join Wasmer Slack](https://img.shields.io/static/v1?label=Slack&message=join%20chat&color=brighgreen&style=flat-square)](https://slack.wasmer.io) [![MIT License](https://img.shields.io/github/license/wasmerio/wasmer.svg?style=flat-square)](https://github.com/wasmerio/wasmer/blob/master/LICENSE) [![crates.io](https://img.shields.io/crates/v/wasmer-compiler-llvm.svg)](https://crates.io/crates/wasmer-compiler-llvm) This crate contains a compiler implementation based on [the LLVM Compiler Infrastructure][LLVM]. ## Usage ```rust use wasmer::{Store, JIT}; use wasmer_compiler_llvm::LLVM; let compiler = LLVM::new(); // Put it into an engine and add it to the store let store = Store::new(&JIT::new(compiler).engine()); ``` *Note: you can find a [full working example using LLVM compiler here][example].* ## When to use LLVM We recommend using LLVM as the default compiler when running WebAssembly files on any **production** system, as it offers maximum peformance near to native speeds. ## Requirements The LLVM compiler requires a valid installation of LLVM in your system. It currently requires **LLVM 10**. You can install LLVM easily on your Debian-like system via this command: ```bash bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ``` Or in macOS: ```bash brew install llvm ``` Or via any of the [pre-built binaries that LLVM offers][llvm-pre-built]. [LLVM]: https://llvm.org/ [example]: https://github.com/wasmerio/wasmer/blob/master/examples/compiler_llvm.rs [llvm-pre-built]: https://releases.llvm.org/download.html