All Projects → ethereum → Evmc

ethereum / Evmc

Licence: apache-2.0
EVMC – Ethereum Client-VM Connector API

Programming Languages

java
68154 projects - #9 most used programming language
c
50402 projects - #5 most used programming language
rust
11053 projects
golang
3204 projects
cpp
1120 projects

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
Echidna
Ethereum smart contract fuzzer
Stars: ✭ 571 (+316.79%)
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
Intellij Solidity
Solidity plugin for IntelliJ
Stars: ✭ 646 (+371.53%)
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
Dapptools
Dapp, Seth, Hevm, and more
Stars: ✭ 362 (+164.23%)
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
Ethersplay
EVM dissassembler
Stars: ✭ 304 (+121.9%)
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

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 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
  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.
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].