I want to create a desktop application but due to the lack of mature libraries the UI side of things has to be in Rust. I'd like to use Nim for the business logic. The Nim application should be at minimum be able to pass the data to the Rust application. The best case scenario would be if it was possible to fully orchestrate the behavior of the Nim app from the Rust app UI.
What would be the best way to go about this?
I second zmq, works really well. Nim has bindings maintained by araq:
https://github.com/nim-lang/nim-zmq
Plus, zmq docs are really well written.
A local socket is enough. The tricky part is the serialization format. Msgpack could be an option for good performance.
See https://en.wikipedia.org/wiki/Comparison_of_data-serialization_formats
the UI side of things has to be in Rust.
So which RUST GUI lib would you use? When I looked for Rust GUI libs, maybe six months ago, they had at least 3 native attempts, which are all very interesting, but not really ready for use. Rust people seem still to use GTK -- Rusts GTK bindings may be the best of all, and there may exist a few Rust GTK users, but Rust-GTK is obviously no nice solution.