ethereum / Evmc
Licence: apache-2.0
EVMC – Ethereum Client-VM Connector API
Stars: ✭ 137
Programming Languages
Projects that are alternatives of or similar to Evmc
Ethereumjs Monorepo
Monorepo for the Ethereum VM TypeScript Implementation
Stars: ✭ 813 (+493.43%)
Mutual labels: ethereum, evm
Remix
This has been moved to https://github.com/ethereum/remix-project
Stars: ✭ 1,063 (+675.91%)
Mutual labels: ethereum, evm
Ruby To Solidity
(Secure) Ruby to Solidity (Source-to-Source) Cross-Compiler Cheat Sheet / White Paper
Stars: ✭ 7 (-94.89%)
Mutual labels: ethereum, evm
Openzeppelin Contracts
OpenZeppelin Contracts is a library for secure smart contract development.
Stars: ✭ 14,308 (+10343.8%)
Mutual labels: ethereum, evm
Ette
EVM-based Blockchain Indexer, with historical data query & real-time notification support 😎
Stars: ✭ 37 (-72.99%)
Mutual labels: ethereum, evm
Evm Opcodes
Ethereum opcodes and instruction reference
Stars: ✭ 344 (+151.09%)
Mutual labels: ethereum, evm
Evm2wasm
[ORPHANED] Transcompiles EVM code to eWASM
Stars: ✭ 96 (-29.93%)
Mutual labels: ethereum, evm
Chaingear
The consensus computer driven database framework
Stars: ✭ 83 (-39.42%)
Mutual labels: ethereum, evm
Aleth
Aleth – Ethereum C++ client, tools and libraries
Stars: ✭ 3,885 (+2735.77%)
Mutual labels: ethereum, evm
Chains
provides metadata for networkIDs and chainIDs
Stars: ✭ 117 (-14.6%)
Mutual labels: ethereum, evm
Ssvm
SSVM is a high performance, extensible, and hardware optimized WebAssembly Virtual Machine for cloud, AI, and blockchain applications.
Stars: ✭ 751 (+448.18%)
Mutual labels: ethereum, wasm
Awesome Ethereum Security
A curated list of awesome Ethereum security references
Stars: ✭ 345 (+151.82%)
Mutual labels: ethereum, evm
Burrow
https://wiki.hyperledger.org/display/burrow
Stars: ✭ 851 (+521.17%)
Mutual labels: ethereum, evm
Bamboo
Bamboo see https://github.com/cornellblockchain/bamboo
Stars: ✭ 300 (+118.98%)
Mutual labels: ethereum, evm
Py Evm
A Python implementation of the Ethereum Virtual Machine
Stars: ✭ 1,122 (+718.98%)
Mutual labels: ethereum, evm
Hevm
(OLD REPO) A debug-oriented Ethereum VM (EVM)
Stars: ✭ 114 (-16.79%)
Mutual labels: ethereum, evm
EVMC
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 6+, clang 3.8+, MSVC 2017+ | Host- and VM-side |
C++ | C++14, C++17 | GCC 6+, clang 3.8+, MSVC 2017+ | Host- and VM-side |
Go (bindings) | 1.11 - 1.14 (modules) | Host-side only | |
Rust (bindings)¹ | 2018 edition | 1.37.0 and newer | VM-side only |
Java (bindings)² | 11 | Host-side only |
- ↑ Rust support is limited and not complete yet, but it is mostly functional already. Breaking changes are possible at this stage.
- ↑ 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
- aleth-interpreter
- Daytona
- eip1962-evmc (EIP-2003 style precompile)
- evmjit
- evmone
- Hera
- Hera.rs
- ssvm-evmc
Clients
- aleth
- core-geth (in progress)
- evmc-js
- go-ethereum (in progress)
- nim-evmc
- pyevm (in progress)
- pyethereum (abandoned)
- rust-ssvm (Rust Host-side)
- silkworm
- Solidity (for integration testing)
- turbo-geth
Maintainers
See also the list of EVMC Authors.
Contributing
Talk with us on the EVMC Gitter chat.
License
Licensed under the Apache License, Version 2.0.
Internal
Making new release
- Update CHANGELOG.md, put the release date, update release link.
-
git add CHANGELOG.md
. - Tag new release:
bumpversion --allow-dirty prerel
. - Prepare CHANGELOG for next release: add unreleased section and link.
-
git add CHANGELOG.md
. - Start new release series:
bumpversion --allow-dirty --no-tag minor
.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].