Comments (6)
@fangzhengjin - which SDK are you using?
Also, what are you hoping to preserve by reloading a plug-in? If there's nothing about the previous plug-in needed, you should just create a new plug-in with the new wasm.
depending on the SDK you may also want to free
the previous plug-in.
from extism.
@fangzhengjin - which SDK are you using?
Also, what are you hoping to preserve by reloading a plug-in? If there's nothing about the previous plug-in needed, you should just create a new plug-in with the new wasm.
depending on the SDK you may also want to
free
the previous plug-in.
I use Rust SDK.
I want to upgrade the plugin without ending the main process and replace the WASM file. For upper users, they are still the same plugin.
I saw that Rust SDK provided some running methods, but they were all marked as unsafe, and lack of detailed explanation and use examples. Should I use them?
from extism.
Maybe extism can provide a way to upgrade the plugin?
Block new plug-in call requests during the upgrade process, clean up old plug-in resources and resume plug-in call execution after the upgrade.
from extism.
I want to upgrade the plugin without ending the main process and replace the WASM file. For upper users, they are still the same plugin.
Can you elaborate on that please?
from extism.
I want to upgrade the plugin without ending the main process and replace the WASM file. For upper users, they are still the same plugin.
Can you elaborate on that please?
I plan to plug-in some system functions and dynamically load them into the system. At this time, a single plug-in will be upgraded, but the main service will not be shut down.
Just like the Jenkins plug-in system, I can modularly update system functions online without restarting the service. For users, they have no perception. The only place where lags may occur is the blocking of requests during plug-in upgrades. New call requests and uninstalling old plug-ins, loading new plug-ins, and resuming blocked requests. If the operation goes smoothly, the user should not notice anything.
from extism.
@fangzhengjin you should just be able to instantiate a new Extism Plugin and replace it with the old one as @nilslice suggested above. There shouldn't be a need to restart your service to do this.
Can you share a bit more about your architecture? (e.g., is this a multi-threaded app where different threads are sharing the Plugin object)
from extism.
Related Issues (20)
- runtime: update `Plugin::function_extists` and `extism_plugin_function_exists` to check the type of the functions too HOT 4
- derive that forwards From/ToBytes to specific encoding HOT 4
- runtime: wasi preview2 HOT 12
- How do I silence debug logs in the extism crate? HOT 1
- discord link in readme is expired HOT 6
- Add support for multiple arguments
- Pass plug-in ID into `set_log_callback` callback function
- Error: http: request body too large (recovered by wazero) HOT 5
- option for a WASM instr limit per call HOT 1
- look into calling `_initialize` on all linked plugins when initializing the guest runtime, not just the main module HOT 1
- Question about plugin return types HOT 3
- Direct disk/filesystem access HOT 8
- Cost of the function call throught host/guest boundary HOT 8
- Synchronizing the content of `wasm` folder HOT 2
- feat: add manifest field to limit the size of Extism vars HOT 1
- Extism gem fails to load on Ruby 3.3.0 on macOS HOT 6
- Async / Await / Generators / Coroutines in Plugins HOT 3
- How to unload a plugin? HOT 3
- Could we get access to the `id` on `CurrentPlugin`
- add a feature to control which wasm backend is enabled? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from extism.