{"id":18608637,"url":"https://github.com/ziyadedher/evm-bench","last_synced_at":"2025-10-30T20:58:52.653Z","repository":{"id":61219062,"uuid":"548480397","full_name":"ziyadedher/evm-bench","owner":"ziyadedher","description":"🚀🪑 evm-bench is a suite of Ethereum Virtual Machine stress tests and benchmarks.","archived":false,"fork":false,"pushed_at":"2024-05-14T08:05:18.000Z","size":2084,"stargazers_count":190,"open_issues_count":32,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-05-14T09:28:04.585Z","etag":null,"topics":["benchmark","benchmark-framework","ethereum","ethereum-contract","evm","evm-bytecode","smart-contracts"],"latest_commit_sha":null,"homepage":"","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ziyadedher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-09T16:54:09.000Z","updated_at":"2024-05-14T09:28:06.583Z","dependencies_parsed_at":"2023-12-28T21:23:25.033Z","dependency_job_id":"59e7f47f-4e11-44e2-9c44-07c8a75ea28f","html_url":"https://github.com/ziyadedher/evm-bench","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziyadedher%2Fevm-bench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziyadedher%2Fevm-bench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziyadedher%2Fevm-bench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziyadedher%2Fevm-bench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ziyadedher","download_url":"https://codeload.github.com/ziyadedher/evm-bench/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248143120,"owners_count":21054709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","benchmark-framework","ethereum","ethereum-contract","evm","evm-bytecode","smart-contracts"],"created_at":"2024-11-07T03:03:44.433Z","updated_at":"2025-10-30T20:58:47.621Z","avatar_url":"https://github.com/ziyadedher.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# evm-bench\n\n[![Rust](https://github.com/ziyadedher/evm-bench/actions/workflows/rust.yml/badge.svg)](https://github.com/ziyadedher/evm-bench/actions/workflows/rust.yml)\n\n**evm-bench is a suite of Ethereum Virtual Machine (EVM) stress tests and benchmarks.**\n\nevm-bench makes it easy to compare EVM performance in a scalable, standardized, and portable way.\n\n|                         | evmone | revm   | pyrevm | geth   | py-evm.pypy | py-evm.cpython | ethereumjs |\n| ----------------------- | ------ | ------ | ------ | ------ | ----------- | -------------- | ---------- |\n| **sum**                 | 66ms   | 84.8ms | 194ms  | 235ms  | 7.201s      | 19.0886s       | 146.3218s  |\n| **relative**            | 1.000x | 1.285x | 2.939x | 3.561x | 109.106x    | 289.221x       | 2216.997x  |\n|                         |        |        |        |        |             |                |            |\n| erc20.approval-transfer | 7ms    | 9.6ms  | 16.2ms | 17ms   | 425.2ms     | 1.13s          | 2.0006s    |\n| erc20.mint              | 5ms    | 6.4ms  | 14.8ms | 17.2ms | 334ms       | 1.1554s        | 3.1352s    |\n| erc20.transfer          | 8.6ms  | 11.6ms | 22.8ms | 24.6ms | 449.2ms     | 1.6172s        | 3.6564s    |\n| snailtracer             | 43ms   | 53ms   | 128ms  | 163ms  | 5.664s      | 13.675s        | 135.059s   |\n| ten-thousand-hashes     | 2.4ms  | 4.2ms  | 12.2ms | 13.2ms | 328.6ms     | 1.511s         | 2.4706s    |\n\nTo reproduce these results, check out [usage with the evm-bench suite below](#with-the-evm-bench-suite).\n\n## Technical Overview\n\nIn evm-bench there are [benchmarks](/benchmarks) and [runners](/runners):\n\n- [Benchmarks](/benchmarks) are expensive Solidity contracts paired with configuration.\n- [Runners](/runners) are consistent platforms for deploying and calling arbitrary smart contracts.\n\nThe evm-bench framework can run any benchmark on any runner. The links above dive deeper into how to build new benchmarks or runners.\n\n## Usage\n\n### With the evm-bench suite\n\nSimply cloning this repository and running `RUST_LOG=info cargo run --release --` will do the trick. You may need to install some dependencies for the benchmark build process and the runner execution.\n\n### With another suite\n\nevm-bench is meant to be used with the pre-developed suite of benchmarks and runners in this repository. However, it should work as an independent framework elsewhere.\n\nSee the CLI arguments for evm-bench to figure out how to set it up! Alternatively just reach out to me or post an issue.\n\n## Development\n\nDo it. Reach out to me if you wanna lend a hand but don't know where to start!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziyadedher%2Fevm-bench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fziyadedher%2Fevm-bench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziyadedher%2Fevm-bench/lists"}