Skip to content

left-curve/grug

Repository files navigation

grug

Grug

An execution environment for blockchains.

Whitepaper

Overview

Grug consists of the following Rust crates:

Crate Description
app State machine transition logics and Tendermint ABCI implementation
client HTTP client for interacting with Grug via Tendermint RPC
crypto Cryptography functionalities
db/disk An on-disk, persisted DB backend
db/memory An in-memory, ephemeral DB backend; used for testing
ffi Helpers for building or interacting with FFI
macros Procedural macros for reducing boilerplates in contract developments
jellyfish-merkle Jellyfish Merkle Tree (JMT) implementation
std A "meta crate" the re-exports contents of other crates
storage Abstractions over key-value stores
testing Testing utilities
types Types, traits, and some helper functions
vm/rust A VM that runs native Rust codes; used for testing
vm/wasm A VM that runs WebAssembly byte codes

How to use

Prerequisites:

Install the grug command line software:

just install

Run tests:

just test

Lint the code:

just lint

Compile and optimize smart contracts:

just optimize

Acknowledgement

TODO

License

TBD