You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I just recently had this issue where the Wooting Analog Plugin would link against the Wooting Analog SDK I compiled myself, but crash when attempting to read the buffer. I imagine a similar issue could occur when someone simply writes and publishes a Rust plugin and the Analog SDK is updated.
Possible solutions to this problem:
Use the C ABI for all plugins
Use some "stable ABI" crate like https://github.com/ZettaScaleLabs/stabby (Would need to ensure that all types that cross the ABI bridge are compatible, including HashMap, which is used as the result for read_analog_buffer.)
The text was updated successfully, but these errors were encountered:
(We've already discussed this a little bit on Discord, but I'm just gonna write my thoughts here for completeness)
My current feeling would be to just get rid of Rust plugins all together. Resulting in the main wooting-analog-plugin being part of the core SDK and just having the mechanism for plugins using the C ABI.
The whole unstable ABI is kinda annoying and I don't feel like it's really necessary to even have this ability when the project is open source. So if someone wants to support a device using Rust, they can just PR an update to the core.
Overall, this would simplify things a lot, as I feel like there are a number of aspects of this project that are somewhat over-engineered.
Historically, I did like the ability to disable/remove the wooting-analog-plugin to improve init time and avoid the issues there used to be.
I think a better approach would be simply updating it to using the C ABI. I'm not entirely sure how hard it would be to port the declare_plugin! macro to do that. But in the case of the wooting-analog-plugin, there's already a C version that's almost identical to the Rust version. :P
I just recently had this issue where the Wooting Analog Plugin would link against the Wooting Analog SDK I compiled myself, but crash when attempting to read the buffer. I imagine a similar issue could occur when someone simply writes and publishes a Rust plugin and the Analog SDK is updated.
Possible solutions to this problem:
read_analog_buffer
.)The text was updated successfully, but these errors were encountered: