Expand description
A simple event-driven library for parsing WebAssembly binary files (or streams).
The parser library reports events as they happen and only stores parsing information for a brief period of time, making it very fast and memory-efficient. The event-driven model, however, has some drawbacks. If you need random access to the entire WebAssembly data-structure, this is not the right library for you. You could however, build such a data-structure using this library.
To get started, create a Parser using Parser::new and then follow
the examples documented for Parser::parse or Parser::parse_all.
Modules§
- collectionsvalidate
- Type definitions for maps and sets used by the wasmparsercrate.
- component_types validateandcomponent-model
- Types relating to type information provided by validation.
- namesvalidateandcomponent-model
- Definitions of name-related helpers and newtypes, primarily for the component model.
- typesvalidate
- Types relating to type information provided by validation.
Macros§
- for_each_ operator 
- Used to implement routines for the Operatorenum.
- for_each_ visit_ operator 
- Used to implement the VisitOperatortrait.
- for_each_ visit_ simd_ operator simd
- Used to implement the VisitSimdOperatortrait.
Structs§
- ArrayType 
- Represents a type of an array in a WebAssembly module.
- BinaryReader 
- A binary reader of the WebAssembly structures and types.
- BinaryReader Error 
- A binary reader for WebAssembly modules.
- BrTable
- A br_table entries representation.
- BrTableTargets 
- An iterator over the targets of a BrTable.
- BranchHint 
- A hint for a single branch.
- BranchHint Function 
- Branch hints for a single function.
- Comdat
- Represents COMDAT data in the linking custom section.
- ComdatSymbol 
- Represents a symbol that is part of a comdat.
- ComponentExport 
- Represents an export in a WebAssembly component.
- ComponentExport Name 
- Represents the name of a component export.
- ComponentFunc Type 
- Represents a type of a function in a WebAssembly component.
- ComponentImport 
- Represents an import in a WebAssembly component
- ComponentImport Name 
- Represents the name of a component import.
- ComponentInstantiation Arg 
- Represents an argument to instantiating a WebAssembly component.
- ComponentStart Function 
- Represents the start function in a WebAssembly component.
- CompositeType 
- Represents a composite type in a WebAssembly module.
- ConstExpr 
- Represents an initialization expression.
- ContType 
- Represents a type of a continuation in a WebAssembly module.
- ControlStack 
- The Wasm control stack for the OperatorsReader.
- CoreDump Instance 
- A single instance from a coredump instances section
- CoreDump Instances Section 
- A custom section representing the instances involved in a given coredump
- CoreDump Modules Section 
- The data portion of a “coremodules” custom section. This contains a vec of module names that will be referenced by index by other coredump sections.
- CoreDump Section 
- The data portion of a custom section representing a core dump. Per the tool-conventions repo, this section just specifies the executable name that the core dump came from while the rest of the core dump information is contained in a corestack custom section
- CoreDump Stack Frame 
- A single stack frame from a core dump
- CoreDump Stack Section 
- The data portion of a custom section representing a core dump stack. The structure of this follows the coredump spec in the tool-conventions repo
- CustomSection Reader 
- A reader for custom sections of a WebAssembly module.
- Data
- Represents a data segment in a core WebAssembly module.
- DefinedData Symbol 
- Represents the metadata about a data symbol defined in the wasm file.
- Element
- Represents a core WebAssembly element segment.
- Export
- Represents an export in a WebAssembly module.
- ExportInfo 
- FieldType 
- Represents a field type of an array or a struct.
- Frame
- A Wasm control flow block on the control flow stack during Wasm validation.
- FuncToValidate 
- Resources necessary to perform validation of a function.
- FuncType 
- Represents a type of a function in a WebAssembly module.
- FuncValidator 
- Validation context for a WebAssembly function.
- FuncValidator Allocations 
- External handle to the internal allocations used during function validation.
- FunctionBody 
- Represents a WebAssembly function body.
- Global
- Represents a core WebAssembly global.
- GlobalType 
- Represents a global’s type.
- Ieee32
- An IEEE binary32 immediate floating point value, represented as a u32 containing the bit pattern.
- Ieee64
- An IEEE binary64 immediate floating point value, represented as a u64 containing the bit pattern.
- Import
- Represents an import in a WebAssembly module.
- ImportInfo 
- IndirectNaming 
- Represents an indirect name in the names custom section.
- InitFunc 
- Represents an init function in the linking custom section.
- InstantiationArg 
- Represents an argument to instantiating a WebAssembly module.
- LinkingSection Reader 
- A reader for the linkingcustom section of a WebAssembly module.
- LocalsIterator 
- An iterator over locals in a function body.
- LocalsReader 
- A reader for a function body’s locals.
- MemArg
- Represents a memory immediate in a WebAssembly memory instruction.
- MemInfo
- Represents a WASM_DYLINK_MEM_INFOfield
- MemoryType 
- Represents a memory’s type.
- Naming
- Represents a name for an index from the names section.
- OperatorsIterator 
- An iterator over a function’s operators.
- OperatorsIterator With Offsets 
- An iterator over a function’s operators with offsets.
- OperatorsReader 
- A reader for a core WebAssembly function’s operators. The OperatorsReaderinternally maintains a stack of the kinds of frames within an expression or function body. This is necessary to enforce the syntactic requirements of the binary format. The BinaryReader can also be used to read the operators by providing an externalFrameStackinstance.
- OperatorsReader Allocations 
- External handle to the internal allocations used by the OperatorsReader
- PackedIndex 
- A packed representation of a type index.
- Parser
- An incremental parser of a binary WebAssembly module or component.
- ProducersField 
- A field from the producers custom section.
- ProducersField Value 
- Represents a field value in the producers custom section.
- RecGroup
- Represents a recursive type group in a WebAssembly module.
- RefType
- A reference type.
- RelocSection Reader 
- Reader for reloc.* sections as defined by https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md#relocation-sections.
- RelocationEntry 
- Single relocation entry within a reloc.*section, as defined at https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md#relocation-sections.
- ResumeTable 
- A representation of dispatch tables on resumeandresume_throwinstructions.
- SectionLimited 
- A generic structure for reading a section of a WebAssembly binary which has a limited number of items within it.
- SectionLimited Into Iter 
- A consuming iterator of a SectionLimited.
- SectionLimited Into Iter With Offsets 
- An iterator over a limited section iterator.
- Segment
- Represents extra metadata about the data segments.
- SegmentFlags 
- Flags for WebAssembly segments.
- StructType 
- Represents a type of a struct in a WebAssembly module.
- SubType
- Represents a subtype of possible other types in a WebAssembly module.
- Subsections
- Iterator/reader over the contents of a section which is composed of subsections.
- SymbolFlags 
- Flags for WebAssembly symbols.
- Table
- Type information about a table defined in the table section of a WebAssembly module.
- TableType 
- Represents a table’s type.
- TagType
- A tag’s type.
- TryTable
- A try_tableentries representation.
- V128
- Represents a 128-bit vector value.
- Validatorvalidate
- Validator for a WebAssembly binary module or component.
- ValidatorId validate
- A unique identifier for a particular Validator.
- ValidatorResources 
- The implementation of WasmModuleResourcesused byValidator.
- VariantCase 
- Represents a case in a variant type.
- WasmFeatures 
- Flags for features that are enabled for validation.
- WasmFeatures Inflated features
- Inflated version of WasmFeaturesthat allows for exhaustive matching on fields.
Enums§
- AbstractHeap Type 
- An abstract heap type.
- BlockType 
- Represents a block type.
- CanonicalFunction 
- Represents a canonical function in a WebAssembly component.
- CanonicalOption 
- Represents options for component functions.
- Catch
- Catch clauses that can be specified in TryTable.
- Chunk
- A successful return payload from Parser::parse.
- ComdatSymbol Kind 
- Represents a symbol kind.
- ComponentAlias 
- Represents an alias in a WebAssembly component.
- ComponentDefined Type 
- Represents a defined type in a WebAssembly component.
- ComponentExternal Kind 
- Represents the kind of an external items of a WebAssembly component.
- ComponentInstance 
- Represents an instance in a WebAssembly component.
- ComponentName 
- Represents a name read from the names custom section.
- ComponentOuter Alias Kind 
- Represents the kind of an outer alias in a WebAssembly component.
- ComponentType 
- Represents a type in a WebAssembly component.
- ComponentType Declaration 
- Represents part of a component type declaration in a WebAssembly component.
- ComponentType Ref 
- Represents a reference to a component type.
- ComponentValType 
- Represents a value type in a WebAssembly component.
- CompositeInner Type 
- A CompositeTypecan contain one of these types.
- CoreDump Value 
- Local and stack values are encoded using one byte for the type (similar to Wasm’s Number Types) followed by bytes representing the actual value See the tool-conventions repo for more details.
- CoreType 
- Represents a core type in a WebAssembly component.
- DataKind 
- The kind of data segment.
- Dylink0Subsection 
- Possible subsections of the dylink.0custom section.
- ElementItems 
- Represents the items of an element segment.
- ElementKind 
- The kind of element segment.
- Encoding
- The supported encoding formats for the parser.
- ExternalKind 
- External types as defined here.
- FrameKind 
- The kind of a control flow Frame.
- Handle
- Handle clauses that can be specified in ResumeTable.
- HeapType 
- A heap type.
- Instance
- Represents an instance of a WebAssembly module.
- InstanceType Declaration 
- Represents an instance type declaration in a WebAssembly component.
- InstantiationArgKind 
- Represents the kind of an instantiation argument for a core instance.
- KnownCustom 
- Return value of CustomSectionReader::as_known.
- Linking
- Represents a subsection read from the linking custom section.
- ModuleType Declaration 
- Represents a module type declaration in a WebAssembly component.
- Name
- Represents a name read from the names custom section.
- Operator
- Instructions as defined here.
- Ordering
- Represents the memory ordering for atomic instructions.
- OuterAlias Kind 
- Represents the kind of an outer core alias in a WebAssembly component.
- Payload
- Values that can be parsed from a WebAssembly module or component.
- PrimitiveValType 
- Represents a primitive value type.
- RelocAddend Kind 
- Indicates the kind of addend that applies to a relocation entry.
- RelocationType 
- Relocation entry type. Each entry type corresponds to one of the
R_WASM_*constants defined at https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/BinaryFormat/WasmRelocs.def and https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md#relocation-sections.
- StorageType 
- Represents storage types introduced in the GC spec for array and struct fields.
- SymbolInfo 
- Represents extra information about symbols in the linking custom section.
- TableInit 
- Different modes of initializing a table.
- TagKind
- Represents a tag kind.
- TypeBounds 
- Represents the type bounds for imports and exports.
- TypeRef
- Represents a reference to a type definition in a WebAssembly module.
- UnpackedIndex 
- The uncompressed form of a PackedIndex.
- ValType
- Represents the types of values in a WebAssembly module.
- ValidPayload validate
- Possible return values from Validator::payload.
Traits§
- FrameStack 
- A trait representing the stack of frames within a function.
- FromReader 
- A trait implemented for items that can be decoded directly from a
BinaryReader, or that which can be parsed from the WebAssembly binary format.
- ModuleArity 
- To compute the arity (param and result counts) of “variable-arity” operators, the operator_arity macro needs information about the module’s types and the current control stack. The ModuleArity trait exposes this information.
- Subsection
- A trait implemented for subsections of another outer section.
- VisitOperator 
- Trait implemented by types that can visit all Operatorvariants.
- VisitSimd Operator simd
- Trait implemented by types that can visit all Wasm simdandrelaxed-simdOperators.
- WasmModule Resources validate
- Types that qualify as Wasm validation database.
Functions§
- validatevalidate
- Test whether the given buffer contains a valid WebAssembly module or component,
analogous to WebAssembly.validatein the JS API.
Type Aliases§
- BranchHint Section Reader 
- A reader for the metadata.code.branch_hintcustom section.
- CodeSection Reader 
- A reader for the code section of a WebAssembly module.
- ComdatMap 
- Represents a reader for COMDAT data from the linking custom section.
- ComponentAlias Section Reader 
- Section reader for the component alias section
- ComponentCanonical Section Reader 
- A reader for the canonical section of a WebAssembly component.
- ComponentExport Section Reader 
- A reader for the export section of a WebAssembly component.
- ComponentImport Section Reader 
- A reader for the import section of a WebAssembly component.
- ComponentInstance Section Reader 
- A reader for the component instance section of a WebAssembly component.
- ComponentName Section Reader 
- Type used to iterate and parse the contents of the component-namecustom section in components, similar to thenamesection of core modules.
- ComponentType Section Reader 
- A reader for the type section of a WebAssembly component.
- CoreType Section Reader 
- A reader for the core type section of a WebAssembly component.
- DataSection Reader 
- A reader for the data section of a WebAssembly module.
- Dylink0Section Reader 
- Parser for the dynamic linking dylink.0custom section.
- ElementSection Reader 
- A reader for the element section of a WebAssembly module.
- ExportSection Reader 
- A reader for the export section of a WebAssembly module.
- FunctionSection Reader 
- A reader for the function section of a WebAssembly module.
- GlobalSection Reader 
- A reader for the global section of a WebAssembly module.
- ImportSection Reader 
- A reader for the import section of a WebAssembly module.
- IndirectName Map 
- Represents a reader for indirect names from the names custom section.
- InitFunc Map 
- Represents a reader for init functions from the linking custom section.
- InstanceSection Reader 
- A reader for the core instance section of a WebAssembly component.
- MemorySection Reader 
- A reader for the memory section of a WebAssembly module.
- NameMap
- Represents a name map from the names custom section.
- NameSection Reader 
- A reader for the name custom section of a WebAssembly module.
- ProducersSection Reader 
- A reader for the producers custom section of a WebAssembly module.
- RelocationEntry Reader 
- Reader for relocation entries within a reloc.*section.
- Result
- The result for BinaryReaderoperations.
- SegmentMap 
- Represents a reader for segments from the linking custom section.
- SymbolInfo Map 
- Represents a reader for symbol info from the linking custom section.
- TableSection Reader 
- A reader for the table section of a WebAssembly module.
- TagSectionReader 
- A reader for the tags section of a WebAssembly module.
- TypeSection Reader 
- A reader for the type section of a WebAssembly module.