I’ve been thinking about how I could use Elixir as a scripting language within a Rust application. I read an interesting discussion about Rustler, NIFs and Ports, but this doesn’t quite seem to meet the use case I envision.
What I really want is a Rust application with the Erlang BEAM and Elixir embedded (probably when the Rust application is compiled?). Rust should be the main entry point and would initiate execution of the Elixir scripts, with any necessary results/changes being propagated back to the Rust app. (I guess think of something like a game engine written in C++ with an embedded Lua scripting engine).
I can think of a couple options where Rust an Elixir portions are their own processes and use Ports to communicate. Or where the Rust app launches some mix
task and uses NIFs to access other Rust functionality. Both of these approaches seem clunky.
Has anyone got any thoughts or suggestions on how I might approach achieving such a goal?