https://github.com/ipsilon/evmc

EVMC – Ethereum Client-VM Connector API

https://github.com/ipsilon/evmc

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 21 committers (4.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary

Keywords

c cpp ethereum evm evmc ewasm golang hacktoberfest java rust wasm
Last synced: 6 months ago · JSON representation

Repository

EVMC – Ethereum Client-VM Connector API

Basic Info
  • Host: GitHub
  • Owner: ipsilon
  • License: apache-2.0
  • Language: C
  • Default Branch: master
  • Homepage: https://evmc.ethereum.org
  • Size: 2.7 MB
Statistics
  • Stars: 369
  • Watchers: 31
  • Forks: 323
  • Open Issues: 44
  • Releases: 29
Topics
c cpp ethereum evm evmc ewasm golang hacktoberfest java rust wasm
Created over 9 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog License Authors

README.md

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 8+, clang 9+, MSVC 2017+ | Host- and VM-side | | C++ | C++17 | GCC 8+, clang 9+, 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.

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.

Owner

  • Name: Ipsilon
  • Login: ipsilon
  • Kind: organization

GitHub Events

Total
  • Watch event: 3
  • Fork event: 3
Last Year
  • Watch event: 3
  • Fork event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,264
  • Total Committers: 21
  • Avg Commits per committer: 60.19
  • Development Distribution Score (DDS): 0.276
Past Year
  • Commits: 13
  • Committers: 8
  • Avg Commits per committer: 1.625
  • Development Distribution Score (DDS): 0.615
Top Committers
Name Email Commits
Paweł Bylica c****t@g****m 915
Alex Beregszaszi a****x@r****u 281
Andrei Maiboroda a****i@e****g 17
yperbasis a****n@g****m 17
Jake Lang j****g@g****m 7
Everett Hildenbrandt h****2@i****u 3
Antoine Toulme a****e@l****m 3
pdobacz 5****z 3
Artem Vorotnikov a****m@v****e 2
Gabriel t****i@p****z 2
Igor Mandrigin i@m****u 2
Jesse Kuang j****g@2****m 2
jonny rhea j****a@g****m 2
Dimitris Apostolou d****u@i****m 1
Herbert Jordan h****n@g****m 1
Michael Lynch m****h 1
Oleksii Avramenko a****o@g****m 1
Yoichi Hirai i@y****m 1
Yulong Wu 3****g 1
Dmitri Makarov d****v@s****m 1
rodiazet r****z@g****m 1

Issues and Pull Requests

Last synced: 6 months ago

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 20
proxy.golang.org: github.com/ipsilon/evmc
  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago
proxy.golang.org: github.com/ipsilon/evmc/v12
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago

Dependencies

bindings/rust/evmc-declare/Cargo.toml cargo
  • evmc-vm 10.0.0-alpha.6
  • heck 0.3.1
  • proc-macro2 1.0
  • quote 1.0
  • syn 1.0
bindings/rust/evmc-vm/Cargo.toml cargo
  • evmc-sys 10.0.0-alpha.6
bindings/java/java/build.gradle maven
  • org.apache.commons:commons-lang3 3.0 testImplementation
  • org.junit.jupiter:junit-jupiter-api 5.3.2 testImplementation
  • org.junit.jupiter:junit-jupiter-params 5.3.2 testImplementation
  • org.junit.jupiter:junit-jupiter-engine 5.3.2 testRuntimeOnly
Cargo.toml cargo
bindings/rust/evmc-declare-tests/Cargo.toml cargo
bindings/rust/evmc-sys/Cargo.toml cargo
examples/example-rust-vm/Cargo.toml cargo
go.mod go
bindings/java/build.gradle maven