Skip to main content

wasmer_compiler/
lib.rs

1//! The `wasmer-compiler` crate provides the necessary abstractions
2//! to create a compiler.
3//!
4//! It provides an universal way of parsing a module via `wasmparser`,
5//! while giving the responsibility of compiling specific function
6//! WebAssembly bodies to the `Compiler` implementation.
7
8#![deny(missing_docs, trivial_numeric_casts, unused_extern_crates)]
9#![warn(unused_import_braces)]
10#![allow(clippy::new_without_default, clippy::upper_case_acronyms)]
11#![warn(
12    clippy::float_arithmetic,
13    clippy::mut_mut,
14    clippy::nonminimal_bool,
15    clippy::map_unwrap_or,
16    clippy::print_stdout,
17    clippy::unicode_not_nfc,
18    clippy::use_self
19)]
20#![cfg_attr(docsrs, feature(doc_cfg))]
21
22mod engine;
23mod traits;
24
25pub mod abi;
26pub mod misc;
27pub mod object;
28pub mod progress;
29pub mod serialize;
30pub mod types;
31
32pub use crate::engine::*;
33pub use crate::traits::*;
34
35mod artifact_builders;
36
37pub use self::artifact_builders::*;
38
39#[cfg(feature = "compiler")]
40mod compiler;
41#[cfg(feature = "compiler")]
42pub use crate::compiler::{
43    ArtifactFormat, CompiledFunction, CompiledObjects, Compiler, CompilerConfig, Debugger,
44    DeterministicIdComponent, FuncTranslator, FunctionBucket, WASM_LARGE_FUNCTION_THRESHOLD,
45    WASM_TRAMPOLINE_ESTIMATED_BODY_SIZE, build_function_buckets, emit_metadata_and_link,
46    translate_function_buckets,
47};
48
49#[cfg(feature = "compiler")]
50pub mod dwarf;
51#[cfg(feature = "compiler")]
52pub mod elf;
53#[cfg(feature = "compiler")]
54mod source_map;
55#[cfg(feature = "compiler")]
56pub use source_map::{SourceLocation, WasmSourceMap};
57
58mod constants;
59pub use crate::constants::*;
60
61#[cfg(feature = "translator")]
62#[macro_use]
63mod translator;
64#[cfg(feature = "translator")]
65pub use crate::translator::{
66    FunctionBinaryReader, FunctionBodyData, FunctionMiddleware, MiddlewareBinaryReader,
67    MiddlewareReaderState, ModuleEnvironment, ModuleMiddleware, ModuleMiddlewareChain,
68    ModuleTranslationState, from_binaryreadererror_wasmerror, translate_module, wpheaptype_to_type,
69    wptype_to_type,
70};
71
72pub use wasmer_types::{Addend, CodeOffset, Features};
73
74#[cfg(feature = "translator")]
75/// wasmparser is exported as a module to slim compiler dependencies
76pub use wasmparser;
77
78/// Version number of this crate.
79pub const VERSION: &str = env!("CARGO_PKG_VERSION");