2018-03-29 12:54:40 +00:00
|
|
|
# EVMC
|
|
|
|
|
2018-04-11 11:36:48 +00:00
|
|
|
[![chat: on gitter][gitter badge]][Gitter]
|
|
|
|
[![readme style: standard][readme style standard badge]][standard readme]
|
2018-03-29 12:54:40 +00:00
|
|
|
|
|
|
|
> Ethereum Client-VM Connector API
|
|
|
|
|
2018-10-23 16:52:34 +00:00
|
|
|
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
|
2018-03-29 12:54:40 +00:00
|
|
|
to access Ethereum environment and state.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
2019-01-18 13:05:20 +00:00
|
|
|
### Documentation
|
|
|
|
|
2018-03-29 12:54:40 +00:00
|
|
|
Please visit the [documentation].
|
|
|
|
|
2019-01-18 13:05:20 +00:00
|
|
|
### Languages support
|
|
|
|
|
2019-05-14 13:08:24 +00:00
|
|
|
| Language | Supported Versions | Supported Compilers
|
|
|
|
| ----------------------------- | --------------------- | ------------------------------
|
|
|
|
| **C** | C90[¹](#n1), C99, C11 | GCC 6+, clang 3.8+, MSVC 2015+
|
|
|
|
| **C++** | C++11, C++14, C++17 | GCC 6+, clang 3.8+, MSVC 2015+
|
|
|
|
| **Go** _(bindings)_ | 1.9 - 1.12 |
|
|
|
|
| **Rust** _(bindings)_[²](#n2) | 2018 edition | 1.31.0 and newer
|
|
|
|
|
|
|
|
<b id="n1">1</b>. The C90 support is limited to the core `evmc.h` header only.\
|
|
|
|
<b id="n2">2</b>. Rust support is limited and not complete yet.
|
2019-04-24 08:31:02 +00:00
|
|
|
|
2018-03-29 21:29:40 +00:00
|
|
|
## Related projects
|
|
|
|
|
|
|
|
### EVMs
|
|
|
|
|
2018-06-26 16:24:25 +00:00
|
|
|
- [aleth-interpreter]
|
2018-03-29 21:29:40 +00:00
|
|
|
- [evmjit]
|
2019-04-24 09:15:05 +00:00
|
|
|
- [evmone]
|
2018-03-29 21:29:40 +00:00
|
|
|
- [Hera]
|
2019-04-24 09:15:05 +00:00
|
|
|
- [Hera.rs]
|
2018-03-29 21:29:40 +00:00
|
|
|
|
|
|
|
### Clients
|
|
|
|
|
2018-06-26 16:24:25 +00:00
|
|
|
- [aleth]
|
|
|
|
- [nim-evmc]
|
2018-03-29 21:29:40 +00:00
|
|
|
- [go-ethereum] (in progress)
|
|
|
|
- [pyevm] (in progress)
|
2018-06-26 16:24:25 +00:00
|
|
|
- [pyethereum] (abandoned)
|
2018-03-29 12:54:40 +00:00
|
|
|
|
2018-10-24 21:49:25 +00:00
|
|
|
|
2018-03-29 12:54:40 +00:00
|
|
|
## Maintainers
|
|
|
|
|
|
|
|
- Alex Beregszaszi [@axic]
|
|
|
|
- Paweł Bylica [@chfast]
|
|
|
|
|
2018-08-21 07:39:42 +00:00
|
|
|
See also the list of [EVMC Authors](AUTHORS.md).
|
|
|
|
|
2018-10-24 21:42:04 +00:00
|
|
|
## Contributing
|
|
|
|
|
|
|
|
[![chat: on gitter][gitter badge]][Gitter]
|
|
|
|
|
|
|
|
Talk with us on the [EVMC Gitter chat][Gitter].
|
|
|
|
|
2018-03-29 12:54:40 +00:00
|
|
|
## License
|
|
|
|
|
2018-08-21 07:39:42 +00:00
|
|
|
Licensed under the [MIT License](LICENSE).
|
2018-03-29 12:54:40 +00:00
|
|
|
|
|
|
|
|
2018-10-24 21:49:25 +00:00
|
|
|
## Internal
|
|
|
|
|
|
|
|
### Making new release
|
|
|
|
|
|
|
|
1. Update [CHANGELOG.md](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`.
|
|
|
|
|
|
|
|
|
2018-03-29 12:54:40 +00:00
|
|
|
[@axic]: https://github.com/axic
|
|
|
|
[@chfast]: https://github.com/chfast
|
|
|
|
[documentation]: https://ethereum.github.io/evmc
|
2018-10-23 16:52:34 +00:00
|
|
|
[ewasm]: https://github.com/ewasm/design
|
2018-03-29 21:29:40 +00:00
|
|
|
[evmjit]: https://github.com/ethereum/evmjit
|
2019-04-24 09:15:05 +00:00
|
|
|
[evmone]: https://github.com/chfast/evmone
|
2018-03-29 21:29:40 +00:00
|
|
|
[Hera]: https://github.com/ewasm/hera
|
2019-04-24 09:15:05 +00:00
|
|
|
[Hera.rs]: https://github.com/ewasm/hera.rs
|
2018-04-11 11:36:48 +00:00
|
|
|
[Gitter]: https://gitter.im/ethereum/evmc
|
2018-08-18 20:43:17 +00:00
|
|
|
[aleth-interpreter]: https://github.com/ethereum/aleth/tree/master/libaleth-interpreter
|
|
|
|
[aleth]: https://github.com/ethereum/aleth
|
2018-06-26 16:24:25 +00:00
|
|
|
[nim-evmc]: https://github.com/status-im/nim-evmc
|
2019-04-24 09:15:05 +00:00
|
|
|
[go-ethereum]: https://github.com/ethereum/go-ethereum/pull/17954
|
2018-06-26 16:24:25 +00:00
|
|
|
[pyevm]: https://github.com/ethereum/py-evm
|
|
|
|
[pyethereum]: https://github.com/ethereum/pyethereum/pull/406
|
2018-04-11 11:36:48 +00:00
|
|
|
[standard readme]: https://github.com/RichardLitt/standard-readme
|
|
|
|
|
|
|
|
[gitter badge]: https://img.shields.io/gitter/room/ethereum/evmc.svg?style=flat-square
|
2018-06-26 16:24:25 +00:00
|
|
|
[readme style standard badge]: https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square
|