Skip to content

reach-sh/reach-lang

Repository files navigation

Have a question?

Let's talk. Start a GitHub Discussion

Reach

CircleCI Build Status GitHub License Docs Discord Twitter Follow Subreddit subscribers

We are building the next generation blockchain development platform that will completely transform the paradigm of decentralized application (DApp) development. DApps have enormous potential, but are impractical today because of barriers that have kept blockchain development risky and limited to specialists, like cryptographers. The Reach platform is a comprehensive environment that enables junior developers to build useful and safe DApps without years of experience and easily deploy them on a variety of different blockchain networks.

This repository is for the Reach language, the domain-specific language for trustworthy DApps used by the Reach platform.

Read the documentation.

Development

If you want to work on the Reach compiler, you'll need:

The versions of our dependencies are specified in DEPS.

Installation on macOS:

$ brew tap ethereum/ethereum
$ brew install haskell-stack z3 solidity
$ curl -sSL https://git.io/get-mo -o mo && chmod +x mo && sudo mv mo /usr/local/bin/

Installation on Ubuntu:

$ sudo apt update
$ sudo apt install z3
$ sudo snap install solc
$ curl -sSL https://get.haskellstack.org/ | sh
$ curl -sSL https://git.io/get-mo -o mo && chmod +x mo && sudo mv mo /usr/local/bin/

These instructions may not install the exactly correct versions, and that may matter. If it does, consult hs/Dockerfile.reachc to learn how to get specific versions.

The source code is in the hs directory.