9 releases
0.1.8 | Aug 7, 2022 |
---|---|
0.1.7 | Aug 4, 2022 |
0.1.5 | Jul 29, 2022 |
#1211 in Game dev
24 downloads per month
61KB
726 lines
Resurgence
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
Security
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