From e831c822080e7527fc3fcf923ef1ff9c8bc37a21 Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Tue, 30 May 2023 08:40:23 +0600 Subject: [PATCH 1/9] updating introduction --- docs/contribute/plugin/intro.md | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index e815858d..9fdfc5c8 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -4,13 +4,31 @@ sidebar_position: 1 # 3.1 WasmEdge Plug-in System Introduction -While the WasmEdge language SDKs allow registering host functions from a host (wrapping) application, developers should implement the host functions before compilation. +While the WasmEdge language SDKs allow registering host functions from a host (wrapping) application, developers should implement the host functions before compilation. However, for more flexible and dynamic extension of the host functions, WasmEdge provides a plug-in architecture to load the plug-in shared library. -For the other solutions, WasmEdge provides the plug-in architecture to load the plug-in shared library for easier extending of the host functions. +A WasmEdge plugin is a software component that extends the functionality of the WasmEdge runtime. Currently, developers can follow the guides to implement the plug-ins in [C API (recommended)](develop_plugin_c.md) or [C++](develop_plugin_cpp.md). With the help of the WasmEdge SDKs in the supported languages, developers can load and register the host functions from the plug-in shared libraries, allowing them to seamlessly integrate the plugins into the WasmEdge runtime as if they were part of the core runtime. -With developing the plug-ins, WasmEdge SDKs in the supported languages can load and register the host functions from the plug-in shared libraries. +## Usages of WasmEdge Plugins -In current, developers can follow the guides to implement the plug-ins in [C API (recommended)](develop_plugin_c.md) or [C++](develop_plugin_cpp.md). +WasmEdge plugins can be used in a variety of ways, depending on the specific needs of a project. Plugins can be used to add new functionality to the WasmEdge runtime, or to customize the runtime to suit the specific needs of a project. Plugins can also be used to improve performance by offloading compute-intensive tasks to edge devices, or to improve security by running code in a sandboxed environment. + +## Benefits of Using the WasmEdge Plugin System + +WasmEdge plugins are designed to extend the functionality of the WasmEdge runtime, and can be useful for developers and end-users in several ways: + +* Versatility: WasmEdge plugins can be developed in multiple programming languages that can compile to WebAssembly, allowing developers to write plugins in the language they're most comfortable with. + +* Customization: WasmEdge plugins can be customized to suit the specific needs of a project. Developers can create plugins that integrate with other systems or tools, or that provide unique functionality that's not available in the core WasmEdge runtime. + +* Performance: WasmEdge plugins are designed to work seamlessly with the core runtime, minimizing overhead and maximizing performance. This means that they can provide additional functionality without sacrificing performance. + +* Ease of use: WasmEdge plugins are easy to use and integrate with the WasmEdge runtime. Developers can simply load the plugin into the runtime and use its functions as if they were part of the core runtime. + +* Scalability: WasmEdge plugins can be used to scale applications by offloading compute-intensive tasks to edge devices. This can reduce the load on central servers and improve performance. + +* Security: WasmEdge plugins run in a sandboxed environment, which helps to reduce the risk of security vulnerabilities. Additionally, plugins can be digitally signed to ensure authenticity and integrity. + +WasmEdge plugins can provide developers and users with a versatile, customizable, high-performance, and secure way to extend the functionality of the WasmEdge runtime. WasmEdge plugins can also improve scalability and ease of use, making it easier to build and deploy complex applications on edge devices. ## Loadable Plug-in From 2b6ac2c0a3a00401f3f5d908870ce4bee545caff Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Tue, 30 May 2023 08:45:49 +0600 Subject: [PATCH 2/9] added architecture diagram --- docs/contribute/plugin/intro.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index 9fdfc5c8..e23cf66c 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -12,6 +12,14 @@ A WasmEdge plugin is a software component that extends the functionality of the WasmEdge plugins can be used in a variety of ways, depending on the specific needs of a project. Plugins can be used to add new functionality to the WasmEdge runtime, or to customize the runtime to suit the specific needs of a project. Plugins can also be used to improve performance by offloading compute-intensive tasks to edge devices, or to improve security by running code in a sandboxed environment. +```mermaid +graph LR + A((Host Application)) -- Loads --> B((Plugin Shared Library)) + B -- Registers --> C((Wasmedge Runtime)) +``` + +In this diagram, the "Host Application" represents the application or environment where the Wasmedge runtime is embedded or used. The "Plugin Shared Library" refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The "Wasmedge Runtime" represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. + ## Benefits of Using the WasmEdge Plugin System WasmEdge plugins are designed to extend the functionality of the WasmEdge runtime, and can be useful for developers and end-users in several ways: From 65fc73bfaf90c5bffb5d4e9b7930079acb8e7071 Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Tue, 30 May 2023 08:59:01 +0600 Subject: [PATCH 3/9] updating format Signed-off-by: Mahfuza Humayra Mohona mhmohona@gmail.com --- docs/contribute/plugin/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index e23cf66c..74e459bf 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -18,7 +18,7 @@ graph LR B -- Registers --> C((Wasmedge Runtime)) ``` -In this diagram, the "Host Application" represents the application or environment where the Wasmedge runtime is embedded or used. The "Plugin Shared Library" refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The "Wasmedge Runtime" represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. +In this diagram, the *Host Application* represents the application or environment where the Wasmedge runtime is embedded or used. The *Plugin Shared Library* refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The *Wasmedge Runtime* represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. ## Benefits of Using the WasmEdge Plugin System From 2eeb7d58d500c030e5e34b71ff1681a5fac7b9c0 Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Tue, 30 May 2023 09:01:44 +0600 Subject: [PATCH 4/9] fixing typo Signed-off-by: Mahfuza Humayra Mohona --- docs/contribute/plugin/intro.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index 74e459bf..99ed20bc 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -8,7 +8,7 @@ While the WasmEdge language SDKs allow registering host functions from a host (w A WasmEdge plugin is a software component that extends the functionality of the WasmEdge runtime. Currently, developers can follow the guides to implement the plug-ins in [C API (recommended)](develop_plugin_c.md) or [C++](develop_plugin_cpp.md). With the help of the WasmEdge SDKs in the supported languages, developers can load and register the host functions from the plug-in shared libraries, allowing them to seamlessly integrate the plugins into the WasmEdge runtime as if they were part of the core runtime. -## Usages of WasmEdge Plugins +## Usages of WasmEdge Plugin WasmEdge plugins can be used in a variety of ways, depending on the specific needs of a project. Plugins can be used to add new functionality to the WasmEdge runtime, or to customize the runtime to suit the specific needs of a project. Plugins can also be used to improve performance by offloading compute-intensive tasks to edge devices, or to improve security by running code in a sandboxed environment. @@ -20,7 +20,7 @@ graph LR In this diagram, the *Host Application* represents the application or environment where the Wasmedge runtime is embedded or used. The *Plugin Shared Library* refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The *Wasmedge Runtime* represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. -## Benefits of Using the WasmEdge Plugin System +## Benefits of Using WasmEdge Plugin System WasmEdge plugins are designed to extend the functionality of the WasmEdge runtime, and can be useful for developers and end-users in several ways: From 6008f56d8426fcefaa8ee2da7da08131debdc185 Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Tue, 30 May 2023 09:06:34 +0600 Subject: [PATCH 5/9] fix typo Signed-off-by: Mahfuza Humayra Mohona --- docs/contribute/plugin/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index 99ed20bc..206eaa8d 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -20,7 +20,7 @@ graph LR In this diagram, the *Host Application* represents the application or environment where the Wasmedge runtime is embedded or used. The *Plugin Shared Library* refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The *Wasmedge Runtime* represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. -## Benefits of Using WasmEdge Plugin System +## Benefits of Using WasmEdge Plugin WasmEdge plugins are designed to extend the functionality of the WasmEdge runtime, and can be useful for developers and end-users in several ways: From 67f2f5324ba19cd19b3788606bb875d2376ffbe4 Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Tue, 30 May 2023 18:51:47 +0600 Subject: [PATCH 6/9] update flowchart Signed-off-by: mhmohona --- docs/contribute/plugin/intro.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index 206eaa8d..c90dedcf 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -8,10 +8,6 @@ While the WasmEdge language SDKs allow registering host functions from a host (w A WasmEdge plugin is a software component that extends the functionality of the WasmEdge runtime. Currently, developers can follow the guides to implement the plug-ins in [C API (recommended)](develop_plugin_c.md) or [C++](develop_plugin_cpp.md). With the help of the WasmEdge SDKs in the supported languages, developers can load and register the host functions from the plug-in shared libraries, allowing them to seamlessly integrate the plugins into the WasmEdge runtime as if they were part of the core runtime. -## Usages of WasmEdge Plugin - -WasmEdge plugins can be used in a variety of ways, depending on the specific needs of a project. Plugins can be used to add new functionality to the WasmEdge runtime, or to customize the runtime to suit the specific needs of a project. Plugins can also be used to improve performance by offloading compute-intensive tasks to edge devices, or to improve security by running code in a sandboxed environment. - ```mermaid graph LR A((Host Application)) -- Loads --> B((Plugin Shared Library)) @@ -20,6 +16,10 @@ graph LR In this diagram, the *Host Application* represents the application or environment where the Wasmedge runtime is embedded or used. The *Plugin Shared Library* refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The *Wasmedge Runtime* represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. +## Usages of WasmEdge Plugin + +WasmEdge plugins can be used in a variety of ways, depending on the specific needs of a project. Plugins can be used to add new functionality to the WasmEdge runtime, or to customize the runtime to suit the specific needs of a project. Plugins can also be used to improve performance by offloading compute-intensive tasks to edge devices, or to improve security by running code in a sandboxed environment. + ## Benefits of Using WasmEdge Plugin WasmEdge plugins are designed to extend the functionality of the WasmEdge runtime, and can be useful for developers and end-users in several ways: From f3a2b87d921ea81509eb26fc3ab8a0f010b1c6e4 Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Mon, 5 Jun 2023 10:50:02 +0600 Subject: [PATCH 7/9] Update intro.md Signed-off-by: mhmohona --- docs/contribute/plugin/intro.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index c90dedcf..e2042094 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -13,7 +13,6 @@ graph LR A((Host Application)) -- Loads --> B((Plugin Shared Library)) B -- Registers --> C((Wasmedge Runtime)) ``` - In this diagram, the *Host Application* represents the application or environment where the Wasmedge runtime is embedded or used. The *Plugin Shared Library* refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The *Wasmedge Runtime* represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. ## Usages of WasmEdge Plugin From a34b7facaf568f1cc950b34777d37f753259a56f Mon Sep 17 00:00:00 2001 From: Mahfuza Humayra Mohona Date: Mon, 5 Jun 2023 10:53:30 +0600 Subject: [PATCH 8/9] removing white space Signed-off-by: mahfuza --- docs/contribute/plugin/intro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index e2042094..c90dedcf 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -13,6 +13,7 @@ graph LR A((Host Application)) -- Loads --> B((Plugin Shared Library)) B -- Registers --> C((Wasmedge Runtime)) ``` + In this diagram, the *Host Application* represents the application or environment where the Wasmedge runtime is embedded or used. The *Plugin Shared Library* refers to the library containing the plugin code and functions that extend the functionality of the Wasmedge runtime. The *Wasmedge Runtime* represents the runtime environment that executes WebAssembly modules, including the core runtime and any registered plugins. ## Usages of WasmEdge Plugin From 54988d0ca52cedd498aa6cfa0ad9dcbbc26a62d2 Mon Sep 17 00:00:00 2001 From: Mahfuza Date: Thu, 8 Jun 2023 10:49:28 +0600 Subject: [PATCH 9/9] updating format Signed-off-by: mahfuza --- docs/contribute/plugin/intro.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/contribute/plugin/intro.md b/docs/contribute/plugin/intro.md index c90dedcf..103faeab 100644 --- a/docs/contribute/plugin/intro.md +++ b/docs/contribute/plugin/intro.md @@ -24,17 +24,17 @@ WasmEdge plugins can be used in a variety of ways, depending on the specific nee WasmEdge plugins are designed to extend the functionality of the WasmEdge runtime, and can be useful for developers and end-users in several ways: -* Versatility: WasmEdge plugins can be developed in multiple programming languages that can compile to WebAssembly, allowing developers to write plugins in the language they're most comfortable with. +* **Versatility:** WasmEdge plugins can be developed in multiple programming languages that can compile to WebAssembly, allowing developers to write plugins in the language they're most comfortable with. -* Customization: WasmEdge plugins can be customized to suit the specific needs of a project. Developers can create plugins that integrate with other systems or tools, or that provide unique functionality that's not available in the core WasmEdge runtime. +* **Customization:** WasmEdge plugins can be customized to suit the specific needs of a project. Developers can create plugins that integrate with other systems or tools, or that provide unique functionality that's not available in the core WasmEdge runtime. -* Performance: WasmEdge plugins are designed to work seamlessly with the core runtime, minimizing overhead and maximizing performance. This means that they can provide additional functionality without sacrificing performance. +* **Performance:** WasmEdge plugins are designed to work seamlessly with the core runtime, minimizing overhead and maximizing performance. This means that they can provide additional functionality without sacrificing performance. -* Ease of use: WasmEdge plugins are easy to use and integrate with the WasmEdge runtime. Developers can simply load the plugin into the runtime and use its functions as if they were part of the core runtime. +* **Ease of use:** WasmEdge plugins are easy to use and integrate with the WasmEdge runtime. Developers can simply load the plugin into the runtime and use its functions as if they were part of the core runtime. -* Scalability: WasmEdge plugins can be used to scale applications by offloading compute-intensive tasks to edge devices. This can reduce the load on central servers and improve performance. +* **Scalability:** WasmEdge plugins can be used to scale applications by offloading compute-intensive tasks to edge devices. This can reduce the load on central servers and improve performance. -* Security: WasmEdge plugins run in a sandboxed environment, which helps to reduce the risk of security vulnerabilities. Additionally, plugins can be digitally signed to ensure authenticity and integrity. +* **Security:** WasmEdge plugins run in a sandboxed environment, which helps to reduce the risk of security vulnerabilities. Additionally, plugins can be digitally signed to ensure authenticity and integrity. WasmEdge plugins can provide developers and users with a versatile, customizable, high-performance, and secure way to extend the functionality of the WasmEdge runtime. WasmEdge plugins can also improve scalability and ease of use, making it easier to build and deploy complex applications on edge devices.