Comment on page

Dependency installation

StreamingFast Substreams dependency installation

Dependencies overview

Substreams requires a number of different applications and tools. Instructions and links are provided to assist in the installation of the required dependencies for Substreams.
Tip: Instructions are also provided for cloud-based Gitpod setups.

Local installation

substreams CLI installation

The substreams CLI is required and is the primary Substreams user interface.
Tip: Full setup instructions are available on the installing the substreams CLI page.

Rust installation

Developing Substreams modules requires a working Rust compilation environment.
There are several ways to install Rust. Install Rust through curl by using:
curl --proto '=https' --tlsv1.2 -sSf | sh
source $HOME/.cargo/env # to configure your current shell

wasm32-unknown-unknown target

Ensure you have the wasm32-unknown-unknown target installed on your Rust installation, if unsure, you can install it with:
rustup target add wasm32-unknown-unknown

Buf installation

Buf simplifies the generation of typed structures in any language. Buf uses a remote builder executed on the Buf server, so an internet connection is required to generate Rust bindings from Protobuf definitions.
Visit the Buf website for additional information and installation instructions.
Note: Substreams packages and Buf images are compatible.

Gitpod cloud-based environment

Follow the steps to use Gitpod for Substreams:
  1. 2.
    Obtain a StreamingFast authentication key from:
  2. 3.
    Create a Gitpod account.
  3. 4.
    Configure a STREAMINGFAST_KEY variable in the Gitpod account settings.
  4. 5.
    Open the repository as a Gitpod workspace.
  5. 6.
    The Substreams Template includes a Makefile simplifying the installation process.
    1. 1.
      Running make build rebuilds the Substreams module. Run the command after making changes to the code.
    2. 2.
      make stream runs the stream for a few blocks. Edit Makefile to change the invocation as updates are made to the Substreams module.