MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / unsafeLoadPlugInHosts

Method unsafeLoadPlugInHosts

lib/vm/vm.cpp:99–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97}
98
99void VM::unsafeLoadPlugInHosts() {
100 // Load the plugins and mock them if not found.
101 using namespace std::literals::string_view_literals;
102 PlugInModInsts.clear();
103
104 PlugInModInsts.push_back(
105 createPluginModule<Host::WasiNNModuleMock>("wasi_nn"sv, "wasi_nn"sv));
106 PlugInModInsts.push_back(createPluginModule<Host::WasiCryptoCommonModuleMock>(
107 "wasi_crypto"sv, "wasi_crypto_common"sv));
108 PlugInModInsts.push_back(
109 createPluginModule<Host::WasiCryptoAsymmetricCommonModuleMock>(
110 "wasi_crypto"sv, "wasi_crypto_asymmetric_common"sv));
111 PlugInModInsts.push_back(createPluginModule<Host::WasiCryptoKxModuleMock>(
112 "wasi_crypto"sv, "wasi_crypto_kx"sv));
113 PlugInModInsts.push_back(
114 createPluginModule<Host::WasiCryptoSignaturesModuleMock>(
115 "wasi_crypto"sv, "wasi_crypto_signatures"sv));
116 PlugInModInsts.push_back(
117 createPluginModule<Host::WasiCryptoSymmetricModuleMock>(
118 "wasi_crypto"sv, "wasi_crypto_symmetric"sv));
119 PlugInModInsts.push_back(createPluginModule<Host::WasmEdgeProcessModuleMock>(
120 "wasmedge_process"sv, "wasmedge_process"sv));
121 PlugInModInsts.push_back(createPluginModule<Host::WasiLoggingModuleMock>(
122 "wasi_logging"sv, "wasi:logging/logging"sv));
123 PlugInModInsts.push_back(
124 createPluginModule<Host::WasmEdgeTensorflowModuleMock>(
125 "wasmedge_tensorflow"sv, "wasmedge_tensorflow"sv));
126 PlugInModInsts.push_back(
127 createPluginModule<Host::WasmEdgeTensorflowLiteModuleMock>(
128 "wasmedge_tensorflowlite"sv, "wasmedge_tensorflowlite"sv));
129 PlugInModInsts.push_back(createPluginModule<Host::WasmEdgeImageModuleMock>(
130 "wasmedge_image"sv, "wasmedge_image"sv));
131 PlugInModInsts.push_back(
132 createPluginModule<Host::WasmEdgeStableDiffusionModuleMock>(
133 "wasmedge_stablediffusion"sv, "wasmedge_stablediffusion"sv));
134
135 // Load the other non-official plugins.
136 for (const auto &Plugin : Plugin::Plugin::plugins()) {
137 if (Conf.isForbiddenPlugins(Plugin.name())) {
138 continue;
139 }
140 // Skip wasi_crypto, wasi_nn, wasi_logging, WasmEdge_Process,
141 // WasmEdge_Tensorflow, WasmEdge_TensorflowLite, and WasmEdge_Image.
142 if (Plugin.name() == "wasi_crypto"sv || Plugin.name() == "wasi_nn"sv ||
143 Plugin.name() == "wasi_logging"sv ||
144 Plugin.name() == "wasmedge_process"sv ||
145 Plugin.name() == "wasmedge_tensorflow"sv ||
146 Plugin.name() == "wasmedge_tensorflowlite"sv ||
147 Plugin.name() == "wasmedge_image"sv ||
148 Plugin.name() == "wasmedge_stablediffusion"sv) {
149 continue;
150 }
151 for (const auto &Module : Plugin.modules()) {
152 PlugInModInsts.push_back(Module.create());
153 }
154 for (const auto &Component : Plugin.components()) {
155 PlugInCompInsts.push_back(Component.create());
156 }

Callers

nothing calls this directly

Calls 6

isForbiddenPluginsMethod · 0.80
modulesMethod · 0.80
componentsMethod · 0.80
clearMethod · 0.45
nameMethod · 0.45
createMethod · 0.45

Tested by

no test coverage detected