#vm #language #bytecode #p-code-machine

strontium

A generic low-level process virtual machine

4 releases

✓ Uses Rust 2018 edition

0.5.4 Feb 23, 2019
0.5.3 Dec 17, 2018
0.5.2 Dec 14, 2018
0.5.1 Dec 13, 2018

#13 in Emulators

25 downloads per month

Custom license

26KB
715 lines


Strontium
Please note that this project is still in an early stage, expect breaking changes.

What is Strontium?

Strontium is an embeddable process virtual machine for dynamically and statically typed programming languages. This crate provides the VM along with a bytecode format and parser. Strontium aims to be lightweight and to provide as much freedom to the language implementor as possible.

Features

A checked box indicates an implemented feature.

  •  [ ✓ ]   Number arithmetic on Int, UInt and Float registers
  •  [ ✓ ]   Bitwise arithmetic (AND, OR, XOR, NOT, LSH, ...) on a sequence of bits
  •  [     ]    JIT-compile bytecode to machine code using Cranelift
  •  [     ]    Hardware Interrupts

Status

This project is still in an early stage of development. The current features work as expected, but there may be breaking changes in the future. Let's talk if you're interested on working on this project!

Tests

The following tests have been implemented:

  • bytecode::tests::convert_halt
  • bytecode::tests::convert_load
  • machine::tests::execute_add
  • machine::tests::execute_sub
  • machine::tests::execute_mul
  • machine::tests::execute_div
  • machine::tests::execute_halt
  • machine::tests::execute_load
  • machine::tests::execute_jump

License

Licensed under the MIT license.

Dependencies

~114KB