9 releases

0.1.8 Aug 7, 2022
0.1.7 Aug 4, 2022
0.1.5 Jul 29, 2022

31 downloads per month

MIT license

726 lines


Test Test Crates.io version shield Docs Crates.io license shield

Join the Discord server!


Resurgence aims to be an embedable VM backend with an easy to use API for projects like:

  • Game engines
  • Full blown interpreters
  • Applications that want custom scripting

Right now, Resurgence isn't ready and isn't meant to be used right now

Note: Resurgence is just a backend. This allows us to focus on making it good without having to worry about maintaining a front end. For making a full blown VM, we recommend Crafting Interpters to get an idea on how to make one. Eventually there will be a reference implementation for anyone that needs it


Architecture Application Stack


Of course, with any VM that can be embeded, there's always the question regarding security. To prevent Resurgence from calling random functions, it was decided that all functions must be registered by the application itself with integers as IDs. This is more secure as it can be assumed that all functions registered were registered by the application developer(s), but it comes at the cost of dynamic loading.

Note that while dynamic loading could be implemeted by the application, Resurgence VM will never natively support it

Building Docs

To get basic documentation, run:

cargo doc --open

If you want documentation for internal implementation stuff (yes, we document the internals), run:

cargo doc --open --document-private-items

No runtime deps