aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-server/src/plugins/mod.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2025-10-21 14:36:30 +0200
committerGitHub <noreply@github.com>2025-10-21 14:36:30 +0200
commit889bd06f447f9d50ee46b8efc7d9970d3693cb96 (patch)
tree171fa657faccf4b4ce7124847977626826a2a750 /zellij-server/src/plugins/mod.rs
parentGive plugins the ability to read pane contents (#4465) (diff)
downloadsl0ppij-889bd06f447f9d50ee46b8efc7d9970d3693cb96.tar.gz
sl0ppij-889bd06f447f9d50ee46b8efc7d9970d3693cb96.tar.xz
sl0ppij-889bd06f447f9d50ee46b8efc7d9970d3693cb96.zip
Migrate from wasmtime to wasmi (#4449)
* initial implementation * fix stdio and host folder mounting * some memory usage optimizations * fix plugin tests * remove unused plugin cache * fix docker-compose for e2e tests when running locally * rustfmt * initial pinned executor implementation * EXPERIMENT: add jemalloc * initial dynamic pinned threadpool * cleanups and experiments * keep state on execution threads * reintroduce memory cache * add wasmi engine to executor threads * load plugins for new clients on the relevant executor thread * only show loading indication of loading for more than 0.4 secs * fix anonymous plugin loading without client id * refactor lots of stuff * update snapshots * tests for pinned executor * remove jemalloc * fix stderr from plugins * cleanups * rustfmt * cleanups * fix endless loading for additinal attachments * more cleanups * remove singlepass feature * fix displaying plugin permission message * render optimizations * always render for tests * rustfmt * optimize release build for wasmi * fixes for multiple client plugin loading * fix frame rendering for multiple clients * rustfmt * fix loading background plugins and e2e event ordering change * rustfmt * account for races in the pin_floating_panes e2e test * docs(changelog): add PR
Diffstat (limited to 'zellij-server/src/plugins/mod.rs')
-rw-r--r--zellij-server/src/plugins/mod.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/zellij-server/src/plugins/mod.rs b/zellij-server/src/plugins/mod.rs
index 14fbf345..126ec356 100644
--- a/zellij-server/src/plugins/mod.rs
+++ b/zellij-server/src/plugins/mod.rs
@@ -1,3 +1,4 @@
+mod pinned_executor;
mod pipes;
mod plugin_loader;
mod plugin_map;
@@ -6,13 +7,15 @@ mod wasm_bridge;
mod watch_filesystem;
mod zellij_exports;
use log::info;
+
+pub use pinned_executor::PinnedExecutor;
use std::{
collections::{BTreeMap, HashMap, HashSet},
fs,
path::PathBuf,
time::Duration,
};
-use wasmtime::Engine;
+use wasmi::Engine;
use crate::panes::PaneId;
use crate::screen::ScreenInstruction;
@@ -313,7 +316,6 @@ pub(crate) fn plugin_thread_main(
cwd.clone(),
skip_cache,
Some(client_id),
- None,
) {
Ok((plugin_id, client_id)) => {
drop(bus.senders.send_to_screen(ScreenInstruction::AddPlugin(
@@ -389,7 +391,6 @@ pub(crate) fn plugin_thread_main(
None,
skip_cache,
None,
- None,
) {
Ok((plugin_id, _client_id)) => {
let should_be_open_in_place = false;
@@ -501,7 +502,6 @@ pub(crate) fn plugin_thread_main(
cwd,
skip_cache,
Some(client_id),
- None,
)?;
plugin_ids
.entry(run_plugin_or_alias.clone())
@@ -1124,7 +1124,6 @@ fn load_background_plugin(
cwd.clone(),
skip_cache,
Some(client_id),
- None,
) {
Ok((plugin_id, client_id)) => {
let should_float = None;