-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Win32 plugins via RPC #195
Comments
RPC might have issues with latency, but I have no idea whether it will be a real problem. |
That's a very interesting idea. Exactly how much work this would be I'm not entirely sure, but it shouldn't be mega amounts. This is a marginally WIP framework for replacing Win32 plugins on the fly with C# alternatives: The main issues with that are that the configuration files are manually copied into the plugin directory at the minute. Onto your proposal: My instinct would be to use a packet based TCP implementation rather than RPC as legacy plugins have no knowledge of openBVE's internals. |
Closed via #606 |
Hi,
I want to propose a solution to the old problem of native plugins. I understand these aren't going to be supported for long, but as we've seen in #192 it is still possible to encounter routes using these plugins.
I think the only practical way of using native Win32 binaries on other platforms is through Wine. I propose implementing Win32 plugin server written in C/C++. It would run in Wine, wrapping the plugin into a RPC interface. For communication between Wine and Mono, we could use Apache Thrift or similar RPC. The same approach could then be adopted for native plugins on Windows.
The main tasks are:
We can also avoid using existing RPC and implement our own, optimized protocol, as we precisely know which functions with which arguments can we call.
Best regards,
Jakub
The text was updated successfully, but these errors were encountered: