刘皓
刘皓
You need to enable the `nightly` feature of parking_lot
It's happening because your application clones an `egui::Context` from the main thread and sends it to the worker thread, and then sometimes calls `.request_repaint()` on the `egui::Context` from the worker...
I also think Lua is the best option not only because it's lightweight and easy to build but also because it's very easy to sandbox Lua (the native version of...
Another option, actually, would be to use WebAssembly for the plugins. We can use either Wasmtime or Wasmer (both written in Rust!) to run WebAssembly modules natively. The downside of...
I'm fine with WebAssembly too. There's already a language for describing WebAssembly APIs, [WIT](https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md), that would be better suited for describing how plugins call Luminol's code than C though. As...
Wasmer has no support for autogenerating Rust bindings from WIT though, which would be helpful since then we'd only have to write the plugin API once as a bunch of...
wit-bindgen generates bindings for use in WebAssembly binaries, i.e. this is one tool plugins could use to generate bindings for Luminol's API. wit-bindgen does not, however, generate bindings on the...
I'm working on a similar UI for archives so I might as well do this too.
We should probably wait a little for the flume and cpal pull requests unless there's some rush. I think we may need to make a subtree for catppuccin-egui though because...
web-sys exposes the Performance API for workers as [`web_sys::WorkerGlobalScope::performance`](https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.WorkerGlobalScope.html#method.performance). You just need to be using web-sys 0.3.65 or later and have the `Performance` and `WorkerGlobalScope` features enabled.