gitbook-docs/tutorials_tutorials/recipes_setting_up.md
2021-08-12 00:54:38 +00:00

2.6 KiB

Setting Up Your Environment

In order to develop within the Fluence solution, Rust and small number of tools are required.

Rust

Install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Once Rust is installed, we need to expand the toolchain and include nightly build and the Wasm compile target.

rustup install nightly
rustup target add wasm32-wasi

To keep Rust and the toolchains updated:

rustup self update
rustup update

There are a number of good Rust installation and IDE integration tutorials available. DuckDuckGo is your friend but if that's too much effort, have a look at koderhq. Please note, however, that currently only VSCode is supported with Aqua syntax support.

Aqua Tools

The Aqua compiler and standard library and be installed via npm:

npm -g install @fluencelabs/aqua-cli
npm -g install @fluencelabs/aqua-lib

If you are a VSCode user, note that am Aqua syntax-highlighting extension is available. In VSCode, click on the Extensions button, search for aquaand install the extension.

Moreover, the aqua-playground provides a ready to go Typescript template and Aqua example. In a directory of you choice:

git clone git@github.com:fluencelabs/aqua-playground.git

Marine Tools

Fluence provides several tools to support developers. marine is the command line compiler required to compile Rust modules to the necessary wasm32-wasi target. mrepl, on the other hand, is a command line tool providing access to the Marine runtime to test and experiment with marine modules and services locally:

cargo install marine 
cargo +nightly install mrepl

Fluence Tools

In addition, Fluence provides the fldist tool for the lifecycle management of services. From deploying services to the network to executing compiled Aqua scripts from the command line , fldist does it:

npm install -g @fluencelabs/fldist

Fluence SDK

For frontend development, the Fluence JS-SDK is currently the favored, and only, tool.

npm install @fluencelabs/fluence