• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bindings/H29-Nov-2019-

cmake/H29-Nov-2019-

docs/H29-Nov-2019-

examples/H03-May-2022-

include/evmc/H29-Nov-2019-

lib/H03-May-2022-

test/H03-May-2022-

tools/vmtester/H03-May-2022-

.bumpversion.cfgH A D29-Nov-20191.1 KiB

.clang-formatH A D29-Nov-20191.4 KiB

.clang-tidyH A D29-Nov-20191.3 KiB

.codespell-whitelistH A D29-Nov-20198

.gitignoreH A D29-Nov-201948

.travis.ymlH A D29-Nov-2019466

AUTHORS.mdH A D29-Nov-2019167

CHANGELOG.mdH A D29-Nov-201917.7 KiB

CNAMEH A D29-Nov-201918

Cargo.tomlH A D29-Nov-2019190

DoxyfileH A D29-Nov-201910.8 KiB

LICENSEH A D29-Nov-201911.1 KiB

README.mdH A D29-Nov-20193.8 KiB

appveyor.ymlH A D29-Nov-20191.8 KiB

circle.ymlH A D29-Nov-20197.8 KiB

README.md

1# EVMC
2
3[![chat: on gitter][gitter badge]][Gitter]
4[![readme style: standard][readme style standard badge]][standard readme]
5
6> Ethereum Client-VM Connector API
7
8The EVMC is the low-level ABI between Ethereum Virtual Machines (EVMs) and
9Ethereum Clients. On the EVM side it supports classic EVM1 and [ewasm].
10On the Client-side it defines the interface for EVM implementations
11to access Ethereum environment and state.
12
13
14## Usage
15
16### Documentation
17
18Please visit the [documentation].
19
20### Languages support
21
22| Language                      | Supported Versions    | Supported Compilers
23| ----------------------------- | --------------------- | ------------------------------
24| **C**                         | C99, C11              | GCC 6+, clang 3.8+, MSVC 2015+
25| **C++**                       | C++11, C++14, C++17   | GCC 6+, clang 3.8+, MSVC 2015+
26| **Go** _(bindings)_           | 1.9 - 1.12            |
27| **Rust** _(bindings)_[¹](#n1) | 2018 edition          | 1.37.0 and newer
28
29<b id="n1">1</b>. Rust support is limited and not complete yet, but it is mostly functional already. Breaking changes are possible at this stage.
30
31### Testing tools
32
33* **evmc-vmtester** ([test/vmtester]) — can test any EVM implementation for compatibility with EVMC.
34* **evm-test** ([evmone → test/unittests]) — allows running the collection of [evmone]'s unit tests on any EVMC-compatible EVM implementation.
35* **evmone-fuzzer** ([evmone → test/fuzzer]) — differential fuzzer for EVMC-compatible EVM implementations.
36
37
38## Related projects
39
40### EVMs
41
42- [aleth-interpreter]
43- [evmjit]
44- [evmone]
45- [Hera]
46- [Hera.rs]
47- [Daytona]
48- [eip1962-evmc] (EIP-2003 style precompile)
49
50### Clients
51
52- [aleth]
53- [nim-evmc]
54- [go-ethereum] (in progress)
55- [pyevm] (in progress)
56- [pyethereum] (abandoned)
57- [Solidity] (for integration testing)
58
59
60## Maintainers
61
62- Alex Beregszaszi [@axic]
63- Paweł Bylica [@chfast]
64
65See also the list of [EVMC Authors](AUTHORS.md).
66
67## Contributing
68
69[![chat: on gitter][gitter badge]][Gitter]
70
71Talk with us on the [EVMC Gitter chat][Gitter].
72
73## License
74
75Licensed under the [MIT License](LICENSE).
76
77
78## Internal
79
80### Making new release
81
821. Update [CHANGELOG.md](CHANGELOG.md), put the release date, update release link.
832. `git add CHANGELOG.md`.
843. Tag new release: `bumpversion --allow-dirty prerel`.
854. Prepare CHANGELOG for next release: add unreleased section and link.
865. `git add CHANGELOG.md`.
876. Start new release series: `bumpversion --allow-dirty --no-tag minor`.
88
89
90[@axic]: https://github.com/axic
91[@chfast]: https://github.com/chfast
92[documentation]: https://ethereum.github.io/evmc
93[ewasm]: https://github.com/ewasm/design
94[evmjit]: https://github.com/ethereum/evmjit
95[evmone]: https://github.com/ethereum/evmone
96[evmone → test/fuzzer]: https://github.com/ethereum/evmone/tree/master/test/fuzzer
97[evmone → test/unittests]: https://github.com/ethereum/evmone/tree/master/test/unittests
98[Hera]: https://github.com/ewasm/hera
99[Hera.rs]: https://github.com/ewasm/hera.rs
100[Daytona]: https://github.com/axic/daytona
101[eip1962-evmc]: https://github.com/axic/eip1962-evmc
102[Gitter]: https://gitter.im/ethereum/evmc
103[aleth-interpreter]: https://github.com/ethereum/aleth/tree/master/libaleth-interpreter
104[aleth]: https://github.com/ethereum/aleth
105[Solidity]: https://github.com/ethereum/solidity
106[nim-evmc]: https://github.com/status-im/nim-evmc
107[go-ethereum]: https://github.com/ethereum/go-ethereum/pull/17954
108[pyevm]: https://github.com/ethereum/py-evm
109[pyethereum]: https://github.com/ethereum/pyethereum/pull/406
110[standard readme]: https://github.com/RichardLitt/standard-readme
111[test/vmtester]: https://github.com/ethereum/evmc/tree/master/test/vmtester
112
113[gitter badge]: https://img.shields.io/gitter/room/ethereum/evmc.svg
114[readme style standard badge]: https://img.shields.io/badge/readme%20style-standard-brightgreen.svg
115