#cranelift #data #module #object #linker #back-end #jit

no-std alexcrichton-cranelift-module

Support for linking functions and data with Cranelift

2 unstable releases

0.53.0 Jan 10, 2020
0.52.0 Jan 10, 2020

#49 in #cranelift


Used in 3 crates

Apache-2.0 WITH LLVM-exception

1.5MB
31K SLoC

This crate provides module-level functionality, which allow multiple functions and data to be emitted with Cranelift and then linked together.

This crate is structured as an optional layer on top of cranelift-codegen. It provides additional functionality, such as linking, however users that require greater flexibility don't need to use it.

A Module is a collection of functions and data objects that are linked together. Backend is a trait that defines an interface for backends that compile modules into various forms. Most users will use one of the following Backend implementations:

  • SimpleJITBackend, provided by cranelift-simplejit, which JITs code to memory for direct execution.
  • FaerieBackend, provided by cranelift-faerie, which emits native object files.

lib.rs:

Top-level lib.rs for cranelift_module.

Dependencies

~0.7–1.6MB
~34K SLoC