Class PanamaWasiLinker
java.lang.Object
ai.tegmentum.wasmtime4j.panama.wasi.PanamaWasiLinker
- All Implemented Interfaces:
ai.tegmentum.wasmtime4j.wasi.WasiLinker,Closeable,AutoCloseable
public final class PanamaWasiLinker
extends Object
implements ai.tegmentum.wasmtime4j.wasi.WasiLinker
Panama implementation of a WASI-enabled linker.
This linker wraps a standard Panama linker and adds WASI functionality. Configuration methods
store settings that are applied when instantiate(Store, Module) is called.
The linker accumulates configuration through method calls and creates a properly configured WASI context at instantiation time. This allows for flexible, incremental configuration of WASI settings.
- Since:
- 1.0.0
-
Constructor Summary
ConstructorsConstructorDescriptionPanamaWasiLinker(PanamaLinker<Object> linker, PanamaEngine engine, ai.tegmentum.wasmtime4j.wasi.WasiConfig config) Creates a new WASI linker with the specified configuration. -
Method Summary
Modifier and TypeMethodDescriptionvoidallowDirectoryAccess(Path hostPath, String guestPath) voidclose()voidconfigureStderr(ai.tegmentum.wasmtime4j.wasi.WasiStdioConfig config) voidconfigureStdin(ai.tegmentum.wasmtime4j.wasi.WasiStdioConfig config) voidconfigureStdout(ai.tegmentum.wasmtime4j.wasi.WasiStdioConfig config) voidvoidai.tegmentum.wasmtime4j.wasi.WasiConfigai.tegmentum.wasmtime4j.Engineai.tegmentum.wasmtime4j.Linker<?> voidvoidinheritEnvironmentVariables(List<String> variableNames) ai.tegmentum.wasmtime4j.Instanceinstantiate(ai.tegmentum.wasmtime4j.Store store, ai.tegmentum.wasmtime4j.Module module) booleanisValid()voidsetArguments(List<String> args) voidsetEnvironmentVariable(String name, String value) voidsetEnvironmentVariables(Map<String, String> environment) voidsetMaxFileSize(Long maxSizeBytes) voidsetMaxOpenFiles(Integer max)
-
Constructor Details
-
PanamaWasiLinker
public PanamaWasiLinker(PanamaLinker<Object> linker, PanamaEngine engine, ai.tegmentum.wasmtime4j.wasi.WasiConfig config) Creates a new WASI linker with the specified configuration.- Parameters:
linker- the Panama linker instanceengine- the engineconfig- initial WASI configuration (may be null for defaults)
-
-
Method Details
-
allowDirectoryAccess
-
setEnvironmentVariable
-
setEnvironmentVariables
-
inheritEnvironment
public void inheritEnvironment() throws ai.tegmentum.wasmtime4j.exception.WasmException- Specified by:
inheritEnvironmentin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
inheritEnvironmentVariables
-
setArguments
-
configureStdin
public void configureStdin(ai.tegmentum.wasmtime4j.wasi.WasiStdioConfig config) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
configureStdinin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
configureStdout
public void configureStdout(ai.tegmentum.wasmtime4j.wasi.WasiStdioConfig config) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
configureStdoutin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
configureStderr
public void configureStderr(ai.tegmentum.wasmtime4j.wasi.WasiStdioConfig config) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
configureStderrin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
enableNetworkAccess
public void enableNetworkAccess() throws ai.tegmentum.wasmtime4j.exception.WasmException- Specified by:
enableNetworkAccessin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
disableNetworkAccess
public void disableNetworkAccess()- Specified by:
disableNetworkAccessin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-
setMaxFileSize
- Specified by:
setMaxFileSizein interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-
setMaxOpenFiles
- Specified by:
setMaxOpenFilesin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-
instantiate
public ai.tegmentum.wasmtime4j.Instance instantiate(ai.tegmentum.wasmtime4j.Store store, ai.tegmentum.wasmtime4j.Module module) throws ai.tegmentum.wasmtime4j.exception.WasmException - Specified by:
instantiatein interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker- Throws:
ai.tegmentum.wasmtime4j.exception.WasmException
-
getLinker
public ai.tegmentum.wasmtime4j.Linker<?> getLinker()- Specified by:
getLinkerin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-
getEngine
public ai.tegmentum.wasmtime4j.Engine getEngine()- Specified by:
getEnginein interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-
getConfig
public ai.tegmentum.wasmtime4j.wasi.WasiConfig getConfig()- Specified by:
getConfigin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-
isValid
public boolean isValid()- Specified by:
isValidin interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceai.tegmentum.wasmtime4j.wasi.WasiLinker
-