Skip to content

artheranet/evmc

This branch is 59 commits behind ethereum/evmc:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

44fc118 · Feb 20, 2023
Feb 20, 2023
Aug 19, 2022
Aug 12, 2022
Aug 25, 2022
Feb 20, 2023
Feb 20, 2023
Feb 20, 2023
Aug 19, 2022
Aug 25, 2022
Nov 2, 2020
Aug 2, 2022
Dec 27, 2021
Mar 13, 2019
Apr 2, 2019
Aug 21, 2018
Feb 20, 2023
Aug 25, 2022
Sep 7, 2019
Jun 4, 2019
Nov 9, 2022
Aug 22, 2018
May 6, 2022
Aug 19, 2022
Jan 27, 2023
Dec 10, 2019
Jul 16, 2021

Repository files navigation

EVMC

chat: on gitter readme style: standard

Ethereum Client-VM Connector API

The EVMC is the low-level ABI between Ethereum Virtual Machines (EVMs) and Ethereum Clients. On the EVM side it supports classic EVM1 and ewasm. On the Client-side it defines the interface for EVM implementations to access Ethereum environment and state.

Usage

Documentation

Please visit the documentation.

Languages support

Language Supported Versions Supported Compilers Feature Support
C C99, C11 GCC 7+, clang 5+, MSVC 2017+ Host- and VM-side
C++ C++17 GCC 7+, clang 5+, MSVC 2017+ Host- and VM-side
Go (bindings) 1.11+ (with modules) Host-side only
Rust (bindings)¹ 2018 edition 1.47.0 and newer VM-side only
Java (bindings)² 11 Host-side only
  1. Rust support is limited and not complete yet, but it is mostly functional already. Breaking changes are possible at this stage.
  2. Java support is in progress and the interface remains in flux. Breaking changes are possible at this stage.

Testing tools

  • evmc run (tools/evmc) — executes bytecode in any EVMC-compatible VM implementation.
  • evmc-vmtester (tools/vmtester) — can test any EVM implementation for compatibility with EVMC.
  • evm-test (evmone → test/unittests) — allows running the collection of evmone's unit tests on any EVMC-compatible EVM implementation.
  • evmone-fuzzer (evmone → test/fuzzer) — differential fuzzer for EVMC-compatible EVM implementations.

Related projects

EVMs

Clients

Maintainers

See also the list of EVMC Authors.

Contributing

chat: on gitter

Talk with us on the EVMC Gitter chat.

License

license badge

Licensed under the Apache License, Version 2.0.

Internal

Making new release

  1. Update CHANGELOG.md, put the release date, update release link.
  2. git add CHANGELOG.md.
  3. Tag new release: bumpversion --allow-dirty prerel.
  4. Prepare CHANGELOG for next release: add unreleased section and link.
  5. git add CHANGELOG.md.
  6. Start new release series: bumpversion --allow-dirty --no-tag minor.

About

EVMC – Ethereum Client-VM Connector API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 47.2%
  • C++ 27.3%
  • Rust 9.0%
  • CMake 8.5%
  • Java 4.5%
  • Go 3.2%
  • Makefile 0.3%