# Rust EVM executor or short REVME `revme` is a binary crate to execute the evm in multiple ways. Currently it is mainly used to run ethereum tests with the `statetest` subcommand. ## State Tests `statetest` takes a path to the directory where ethereum statetest json can be found. It recursively parses all json files in the specified directory and executes them. Running all [ethereum tests][et] checks that revm is compliant to the ethereum specs. To run [ethereum tests][et] locally, clone the [tests][et] repository and provide the test directory. Below, we clone the repo and execute the `GeneralStateTests` suite of tests. ```shell git clone https://github.com/ethereum/tests cargo run -p revme statetest tests/GeneralStateTests ``` *Notice, in the [`.gitignore`](../../.gitignore), the `bins/revme/tests` directory is ignored so it won't be checked into git.* [et]: https://github.com/ethereum/tests