Class PanamaComponentEngine
java.lang.Object
ai.tegmentum.wasmtime4j.panama.PanamaComponentEngine
- All Implemented Interfaces:
ai.tegmentum.wasmtime4j.component.ComponentEngine,Closeable,AutoCloseable
public final class PanamaComponentEngine
extends Object
implements ai.tegmentum.wasmtime4j.component.ComponentEngine
Panama implementation of the ComponentEngine interface.
This class provides WebAssembly Component Model functionality using Panama Foreign Function API to communicate with the native Wasmtime component library. It manages component lifecycle and instance creation through native bindings.
Key features:
- Component compilation and instantiation
- WIT interface resolution and type validation
- Component dependency resolution
- Automatic resource cleanup and error handling
- Since:
- 1.0.0
-
Constructor Summary
ConstructorsConstructorDescriptionPanamaComponentEngine(ai.tegmentum.wasmtime4j.component.ComponentEngineConfig config) Creates a new Panama component engine with the given configuration.PanamaComponentEngine(ai.tegmentum.wasmtime4j.component.ComponentEngineConfig config, ai.tegmentum.wasmtime4j.WasmRuntime runtime) Creates a new Panama component engine with the given configuration and runtime reference. -
Method Summary
Modifier and TypeMethodDescriptionai.tegmentum.wasmtime4j.wit.WitCompatibilityResultcheckCompatibility(ai.tegmentum.wasmtime4j.component.Component source, ai.tegmentum.wasmtime4j.component.Component target) voidclose()ai.tegmentum.wasmtime4j.component.ComponentcompileComponent(byte[] wasmBytes) ai.tegmentum.wasmtime4j.component.ComponentcompileComponent(byte[] wasmBytes, String name) ai.tegmentum.wasmtime4j.component.ComponentInstancecreateInstance(ai.tegmentum.wasmtime4j.component.Component component, ai.tegmentum.wasmtime4j.Store store) ai.tegmentum.wasmtime4j.component.ComponentInstancecreateInstance(ai.tegmentum.wasmtime4j.component.Component component, ai.tegmentum.wasmtime4j.Store store, List<ai.tegmentum.wasmtime4j.component.Component> imports) ai.tegmentum.wasmtime4j.component.ComponentdeserializeComponent(byte[] bytes) ai.tegmentum.wasmtime4j.component.Componentai.tegmentum.wasmtime4j.PrecompileddetectPrecompiled(byte[] bytes) ai.tegmentum.wasmtime4j.EnginegetId()Gets the unique identifier for this engine.ai.tegmentum.wasmtime4j.wit.WitSupportInfobooleanisAsync()booleanisValid()booleansame(ai.tegmentum.wasmtime4j.Engine other) booleanMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ai.tegmentum.wasmtime4j.component.ComponentEngine
compileComponentFile
-
Constructor Details
-
PanamaComponentEngine
public PanamaComponentEngine(ai.tegmentum.wasmtime4j.component.ComponentEngineConfig config) throws ai.tegmentum.wasmtime4j.exception.WasmException Creates a new Panama component engine with the given configuration.This constructor is intended for unit tests. Production code should use
PanamaComponentEngine(ComponentEngineConfig, WasmRuntime).- Parameters:
config- the component engine configuration- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException- if engine creation fails
-
PanamaComponentEngine
public PanamaComponentEngine(ai.tegmentum.wasmtime4j.component.ComponentEngineConfig config, ai.tegmentum.wasmtime4j.WasmRuntime runtime) throws ai.tegmentum.wasmtime4j.exception.WasmException Creates a new Panama component engine with the given configuration and runtime reference.- Parameters:
config- the component engine configurationruntime- the runtime that owns this engine- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException- if engine creation fails
-
-
Method Details
-
getId
-
compileComponent
public ai.tegmentum.wasmtime4j.component.Component compileComponent(byte[] wasmBytes) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
compileComponentin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
compileComponent
public ai.tegmentum.wasmtime4j.component.Component compileComponent(byte[] wasmBytes, String name) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
compileComponentin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
createInstance
public ai.tegmentum.wasmtime4j.component.ComponentInstance createInstance(ai.tegmentum.wasmtime4j.component.Component component, ai.tegmentum.wasmtime4j.Store store) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
createInstancein interfaceai.tegmentum.wasmtime4j.component.ComponentEngine- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
createInstance
public ai.tegmentum.wasmtime4j.component.ComponentInstance createInstance(ai.tegmentum.wasmtime4j.component.Component component, ai.tegmentum.wasmtime4j.Store store, List<ai.tegmentum.wasmtime4j.component.Component> imports) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
createInstancein interfaceai.tegmentum.wasmtime4j.component.ComponentEngine- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
checkCompatibility
public ai.tegmentum.wasmtime4j.wit.WitCompatibilityResult checkCompatibility(ai.tegmentum.wasmtime4j.component.Component source, ai.tegmentum.wasmtime4j.component.Component target) - Specified by:
checkCompatibilityin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-
getWitSupportInfo
public ai.tegmentum.wasmtime4j.wit.WitSupportInfo getWitSupportInfo()- Specified by:
getWitSupportInfoin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-
supportsComponentModel
public boolean supportsComponentModel()- Specified by:
supportsComponentModelin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-
getMaxLinkDepth
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
getEngine
public ai.tegmentum.wasmtime4j.Engine getEngine()- Specified by:
getEnginein interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-
isValid
public boolean isValid()- Specified by:
isValidin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-
same
public boolean same(ai.tegmentum.wasmtime4j.Engine other) - Specified by:
samein interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-
isAsync
public boolean isAsync()- Specified by:
isAsyncin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-
deserializeComponent
public ai.tegmentum.wasmtime4j.component.Component deserializeComponent(byte[] bytes) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
deserializeComponentin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
deserializeComponentFile
public ai.tegmentum.wasmtime4j.component.Component deserializeComponentFile(String path) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
deserializeComponentFilein interfaceai.tegmentum.wasmtime4j.component.ComponentEngine- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
detectPrecompiled
public ai.tegmentum.wasmtime4j.Precompiled detectPrecompiled(byte[] bytes) - Specified by:
detectPrecompiledin interfaceai.tegmentum.wasmtime4j.component.ComponentEngine
-