concordium_wasm/
lib.rs

1//! This library provides an implementation of a [Wasm](https://webassembly.org/) execution engine
2//! modified to suit Concordium's needs. In particular it implements
3//! - parsing and validation of Wasm modules, where validation is according to [Wasm core 1 spec](https://www.w3.org/TR/2019/REC-wasm-core-1-20191205/) with
4//!   additional restrictions necessary for blockchain use.
5//! - a compiler to a lower-level format that is easier to execute
6//! - an interpreter
7//! - utilities for storing and loading processed code (the
8//!   [`Artifact`](artifact::Artifact))
9//!
10//! The [`utils`] module provides the convenience wrappers that expose
11//! high-level functionality. The remaining modules contain low-level details.
12
13pub mod artifact;
14mod artifact_input;
15mod artifact_output;
16pub mod constants;
17pub mod machine;
18mod metering_transformation;
19pub use metering_transformation::{CostConfiguration, CostConfigurationV0, CostConfigurationV1};
20pub mod output;
21pub mod parse;
22pub mod types;
23pub mod utils;
24pub mod validate;
25
26#[cfg(test)]
27mod metering_transformation_test;
28#[cfg(test)]
29mod tests;