Skip to main content

synth_frontend/
lib.rs

1//! Synth Frontend - WebAssembly Component Model Parser
2//!
3//! This crate handles parsing and validation of WebAssembly Component Model binaries.
4
5pub mod parser;
6pub mod validator;
7
8pub use parser::ComponentParser;
9pub use validator::ComponentValidator;
10
11use std::path::Path;
12use synth_core::{Component, Error, Result};
13
14/// Parse a WebAssembly component from a file
15pub fn parse_component_file(path: &Path) -> Result<Component> {
16    let bytes = std::fs::read(path)
17        .map_err(|e| Error::parse(format!("Failed to read file {}: {}", path.display(), e)))?;
18
19    parse_component(&bytes)
20}
21
22/// Parse a WebAssembly component from bytes
23pub fn parse_component(bytes: &[u8]) -> Result<Component> {
24    let parser = ComponentParser::new();
25    parser.parse(bytes)
26}
27
28/// Validate a component
29pub fn validate_component(component: &Component) -> Result<()> {
30    let validator = ComponentValidator::new();
31    validator.validate(component)
32}