{"id":14991157,"url":"https://github.com/paradigmxyz/revmc","last_synced_at":"2025-04-12T21:33:48.548Z","repository":{"id":245452728,"uuid":"769994886","full_name":"paradigmxyz/revmc","owner":"paradigmxyz","description":"JIT and AOT compiler for the Ethereum Virtual Machine, built on Revm.","archived":false,"fork":false,"pushed_at":"2025-01-29T08:58:18.000Z","size":20073,"stargazers_count":231,"open_issues_count":5,"forks_count":25,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-12T14:52:19.062Z","etag":null,"topics":["aot","compiler","cranelift","evm","jit","llvm"],"latest_commit_sha":null,"homepage":"https://paradigmxyz.github.io/revmc/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paradigmxyz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-10T16:27:36.000Z","updated_at":"2025-04-11T12:56:16.000Z","dependencies_parsed_at":"2025-02-05T20:06:47.859Z","dependency_job_id":"b92e80fe-4745-45db-b80a-37a14aef2a10","html_url":"https://github.com/paradigmxyz/revmc","commit_stats":{"total_commits":167,"total_committers":5,"mean_commits":33.4,"dds":0.0359281437125748,"last_synced_commit":"9ad12ebe060ab25818ae1bf89febde70e08ca775"},"previous_names":["paradigmxyz/revmc","danipopes/cranelift-jit-evm"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Frevmc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Frevmc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Frevmc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Frevmc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paradigmxyz","download_url":"https://codeload.github.com/paradigmxyz/revmc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248636128,"owners_count":21137381,"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":["aot","compiler","cranelift","evm","jit","llvm"],"created_at":"2024-09-24T14:21:36.508Z","updated_at":"2025-04-12T21:33:48.523Z","avatar_url":"https://github.com/paradigmxyz.png","language":"Rust","funding_links":[],"categories":["EVM - Ethereum Virtual Machine","Rust"],"sub_categories":[],"readme":"# revmc\n\nExperimental [JIT] and [AOT] compiler for the [Ethereum Virtual Machine][EVM].\n\nThe compiler implementation is abstracted over an intermediate representation backend. It performs very well, as demonstrated below from our criterion benchmarks, and exposes an intuitive API via Revm.\n\n![image](https://github.com/paradigmxyz/revmc/assets/17802178/96adf64b-8513-469d-925d-4f8d902e4e0a)\n\nThis repository hosts two backend implementations:\n- [LLVM] ([`revmc-llvm`]): main backend with full test coverage;\n- [Cranelift] ([`revmc-cranelift`]); currently not functional due to missing `i256` support in Cranelift. This will likely require a custom fork of Cranelift.\n\n[JIT]: https://en.wikipedia.org/wiki/Just-in-time_compilation\n[AOT]: https://en.wikipedia.org/wiki/Ahead-of-time_compilation\n[EVM]: https://ethereum.org/en/developers/docs/evm/\n[LLVM]: https://llvm.org/\n[`revmc-llvm`]: /crates/revmc-llvm\n[Cranelift]: https://cranelift.dev/\n[`revmc-cranelift`]: /crates/revmc-cranelift\n\n## Requirements\n\n- Latest stable Rust version\n\n### LLVM backend\n\n- Linux or macOS, Windows is not supported\n- LLVM 18\n  - On Debian-based Linux distros: see [apt.llvm.org](https://apt.llvm.org/)\n  - On Arch-based Linux distros: `pacman -S llvm`\n  - On macOS: `brew install llvm@18`\n  - The following environment variables may be required:\n    ```bash\n    prefix=$(llvm-config --prefix)\n    # or\n    #prefix=$(llvm-config-18 --prefix)\n    # on macOS:\n    #prefix=$(brew --prefix llvm@18)\n    export LLVM_SYS_180_PREFIX=$prefix\n    ```\n\n## Usage\n\nThe compiler is implemented as a library and can be used as such through the `revmc` crate.\n\nA minimal runtime is required to run AOT-compiled bytecodes. A default runtime implementation is\nprovided through symbols exported in the `revmc-builtins` crate and must be exported in the final\nbinary. This can be achieved with the following build script:\n```rust,ignore\nfn main() {\n    revmc_build::emit();\n}\n```\n\nYou can check out the [examples](/examples) directory for example usage.\n\n## Credits\n\nThe initial compiler implementation was inspired by [`paradigmxyz/jitevm`](https://github.com/paradigmxyz/jitevm).\n\n#### License\n\n\u003csup\u003e\nLicensed under either of \u003ca href=\"LICENSE-APACHE\"\u003eApache License, Version\n2.0\u003c/a\u003e or \u003ca href=\"LICENSE-MIT\"\u003eMIT license\u003c/a\u003e at your option.\n\u003c/sup\u003e\n\n\u003cbr\u003e\n\n\u003csub\u003e\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in these crates by you, as defined in the Apache-2.0 license,\nshall be dual licensed as above, without any additional terms or conditions.\n\u003c/sub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparadigmxyz%2Frevmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparadigmxyz%2Frevmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparadigmxyz%2Frevmc/lists"}