1 stable release

4.0.0 Apr 21, 2024

#49 in #test-suite

25 downloads per month

MIT license

520KB
9K SLoC

rtvm

Rust Tos Virtual Machine

Rtvm is an TVM written in Rust that is focused on speed and simplicity. It has a fast and flexible implementation with a simple interface and embedded Host. It passes all ethereum/tests test suites.

Here is a list of guiding principles that Rtvm follows.

  • EVM compatibility and stability - this goes without saying but it is nice to put it here. In the blockchain industry, stability is the most desired attribute of any system.
  • Speed - is one of the most important things and most decisions are made to complement this.
  • Simplicity - simplification of internals so that it can be easily understood and extended, and interface that can be easily used or integrated into other projects.
  • interfacing - [no_std] so that it can be used as wasm lib and integrate with JavaScript and cpp binding if needed.

Project

Structure:

  • crates
    • rtvm -> main TVM library.
    • rtvm-primitives -> Primitive data types.
    • rtvm-interpreter -> Execution loop with instructions
    • rtvm-precompile -> TVM precompiles
  • bins:
    • rtvme: cli binary, used for running state test jsons

Building from source

git clone https://github.com/tos-network/rtvm.git
cd rtvm
cargo build --release

Dependencies

~6–9.5MB
~191K SLoC