Component-model-aware WebAssembly analyzer, optimizer, and profiler
Dependencies
// See README.md and src/lib.mbt for usage.fn analyze_component_contract(bytes : Bytes, resolved : ResolveInput) -> Result[ContractReport, String]fn analyze_component_core_optimize(bytes : Bytes, config? : OptimizeConfig, exclude? : Array[String]) -> Result[ComponentCoreOptimizeReport, String]fn analyze_component_function_sizes(bytes : Bytes) -> Result[Array[ComponentFunctionSizeReport], String]fn analyze_component_root_policy(bytes : Bytes, resolved_wit? : ResolveInput, exclude? : Array[String]) -> Result[ComponentRootPolicyReport, String]fn analyze_function_size_gap(left_bytes : Bytes, right_bytes : Bytes, top_limit? : UInt) -> Result[FunctionGapReport, WiteError]fn analyze_hotness_size_matrix(bytes : Bytes, iterations? : UInt, scenarios? : Array[RuntimeProfileScenario]) -> Result[HotnessSizeMatrixReport, String]fn analyze_keep_reasons(bytes : Bytes, config? : OptimizeConfig) -> Result[KeepReasonReport, WiteError]fn analyze_optimize_metadata(bytes : Bytes, config? : OptimizeConfig, function_diff_limit? : UInt) -> Result[OptimizeMetadataReport, WiteError]fn analyze_retain_paths(bytes : Bytes, config? : OptimizeConfig) -> Result[RetainPathReport, WiteError]fn analyze_wasm_breakdown(bytes : Bytes, top_limit? : UInt) -> Result[WasmBreakdownReport, WiteError]fn compose_wac_file(input_path : String, best_effort? : Bool, dce? : Bool) -> Result[Bytes, String]fn compose_wac_source(source : String, base_dir : String, best_effort? : Bool, dce? : Bool) -> Result[Bytes, String]fn make_component_optimize_config(base? : OptimizeConfig, root_name_candidates? : Array[String], exclude? : Array[String]) -> OptimizeConfigfn make_optimize_config(strip_all_custom? : Bool, strip_name_section? : Bool, strip_producers_section? : Bool, strip_debug_sections? : Bool, strip_dwarf_sections? : Bool, strip_target_features_section? : Bool, keep_custom_sections? : Array[String], pass_rounds? : UInt, enable_peephole? : Bool, peephole_remove_nop? : Bool, peephole_remove_const_drop? : Bool, enable_vacuum? : Bool, enable_merge_blocks? : Bool, enable_remove_unused_brs? : Bool, enable_dce? : Bool, enable_dfe? : Bool, enable_merge_similar_functions? : Bool, enable_remove_unused_module_elements? : Bool, enable_experimental_cfp_const_hints? : Bool, closed_world? : Bool, closed_world_root_exports? : Array[String], safe_mode? : Bool) -> OptimizeConfigfn make_runtime_profile_scenario(export_name : String, args? : Array[Int]) -> RuntimeProfileScenariofn optimize_binary_for_size(bytes : Bytes, config? : OptimizeConfig, exclude? : Array[String]) -> Result[OptimizeResult, String]fn optimize_component_for_size(bytes : Bytes, config? : OptimizeConfig, exclude? : Array[String]) -> Result[OptimizeResult, String]fn profile_runtime_exports(bytes : Bytes, iterations? : UInt, scenarios? : Array[RuntimeProfileScenario]) -> Result[RuntimeProfile, String]fn profile_runtime_zero_arg_exports(bytes : Bytes, iterations? : UInt) -> Result[RuntimeProfile, String]fn resolve_environment(config : WiteConfigFile, env_name : String?) -> Result[EnvironmentConfig, String]fn resolve_environment_def(config : WiteConfigFile, name : String) -> Result[EnvironmentDef, String]Component-model-aware WebAssembly analyzer, optimizer, and profiler
Dependencies