Skip to content
@fluencelabs

Fluence Project

Decentralized Serverless Platform

Fluence

Fluence is a decentralized serverless computing platform.

Repositories

  • Fluence CLI - the go-to tool for fluence developers and providers
  • Nox - reference fluence peer implementation in rust
  • JS Client - client-focused fluence peer implementation for browsers and NodeJS
  • Aqua - choreography and workflow programming language to express distributed algorithms over fluence network
  • Aqua Lib – Aqua Standard Library
  • AquaVM - VM for compiled Aqua – Aqua Intermediate Representation (AIR) scripts, commands choreography on all fluence peers
  • Marine - asynchronous WebAssembly runtime, serves as execution environment for functions on all fluence peers

Fluence CLI – FCLI

https://github.com/fluencelabs/fluence-cli

Fluence CLI is your one-stop command line interface (CLI) shop to creating, deploying, paying, running, monitoring and removing distributed services to and from the Fluence peer-to-peer network.

👉 Note that Fluence CLI is currently only available for nix systems including OSX and Windows Subsystem for Linux (WSL). Moreover, Fluence CLI installs all the required dependencies not already installed on your system including Rust.

Nox

https://github.com/fluencelabs/nox

Nox is the reference implementation of a Fluence Peer. It is meant to be used by Fluence Providers in on-premise and cloud environments.

Nox instances connect to each other to create the Fluence p2p network. Nox integrates Marine Runtime to host WebAssembly functions. It also integrates AquaVM to execute distributed Aqua workflows.

System Services

The following services are considered to be the part of the Fluence protocol, and so are distributed along with Nox:

  • Decider - listens to the Chain RPC events, and deploys Workers to Nox. Workers is a collection of functions and cron jobs, a package for a Fluence App.
  • AquaIpfs – Aqua bindings for IPFS to download & upload data.
  • Registry - experimental and limited KV storage, focused on service discovery.

JS Client

https://github.com/fluencelabs/js-client

JS Client is a client-focused Fluence Peer implementation. Written in TypeScript, it is mainly used in browsers and CLIs to provide an access to the Fluence Network.

JS Client connects to a chosen Nox instance by its Multiaddress, and sends Aqua workflows to call Marine Functions.

JS Client integrates marine-js to host WebAssembly functions, it also integrates AquaVM to execute Aqua workflows.

Aqua

https://github.com/fluencelabs/aqua

Aqua is a programming language for expressing algorithms and workflows over a decentralised distributed p2p network.

It allows to program peer-to-peer scenarios separately from the computations on peers. Applications are turned into hostless workflows over distributed function calls, which enables various levels of decentralization: from handling by a limited set of servers to complete peer-to-peer architecture by connecting user devices directly.

Aqua API

https://github.com/fluencelabs/aqua-lib

Aqua Standard Library includes useful functions like math.aqua, and also describes all the protocol functions in builtins.aqua, subnet.aqua and workers.aqua.

The protocol functions can be called from Aqua to inspect Nox or JS Client state, or command them to do something. Lots of tools are built upon this API.

Note however, that JS Client provides most of the Aqua Standard Library, but not all of it. For example, spells and subnets are missing.

AquaVM

https://github.com/fluencelabs/aquavm

AquaVM executes compiled Aqua, i.e., Aqua Intermediate Representation (AIR) scripts, and plays an integral role in the implementation of the Fluence peer-to-peer compute protocol. Specifically, AquaVM allows expressing network choreography in scripts and composing distributed, peer-to-peer hosted services. Moreover, AquaVM plays a significant role in facilitating function addressability in the Fluence network.

Marine

https://github.com/fluencelabs/marine

Marine is a modern general purpose Wasm runtime based on the component model capable of running multi-module Wasm applications, aka services, with interface-types and a shared-nothing linking scheme. This execution model is well suited for a variety of scenarios and especially applicable to implementations following the entity component system (ECS) pattern or plugin-based architectures.

Fluence peers, such as Fluence Rust node, include Marine to execute the hosted Wasm services composed with Aqua.

Pinned Loading

  1. nox nox Public

    Rust implementation of the Fluence network peer

    Rust 992 187

  2. aqua aqua Public

    Programming language for distributed systems & p2p

    Scala 156 24

  3. marine marine Public

    Marine runs multi-module WebAssembly applications with interface-types and shared-nothing linking scheme

    Rust 199 25

  4. js-client js-client Public

    JS Client to Fluence Network

    TypeScript 74 27

  5. examples examples Public

    Quickstart with Fluence, Aqua, and Marine

    Rust 86 23

Repositories

Showing 10 of 186 repositories
  • spectrum Public
    fluencelabs/spectrum’s past year of commit activity
    HCL 0 0 0 1 Updated Dec 2, 2024
  • examples Public

    Quickstart with Fluence, Aqua, and Marine

    fluencelabs/examples’s past year of commit activity
    Rust 86 23 2 2 Updated Dec 2, 2024
  • registry Public

    Register and discover services via Aqua

    fluencelabs/registry’s past year of commit activity
    Rust 19 Apache-2.0 4 4 12 Updated Dec 1, 2024
  • spell Public

    Spell describes and implements stateful recurring execution on Fluence p2p network

    fluencelabs/spell’s past year of commit activity
    Rust 2 AGPL-3.0 0 1 11 Updated Dec 1, 2024
  • aqua-ipfs Public

    IPFS API bindings for Aqua scripts

    fluencelabs/aqua-ipfs’s past year of commit activity
    Rust 19 Apache-2.0 6 8 (1 issue needs help) 9 Updated Dec 1, 2024
  • cli Public

    CLI tool to help develop services for Fluence

    fluencelabs/cli’s past year of commit activity
    TypeScript 139 AGPL-3.0 36 2 2 Updated Nov 28, 2024
  • plonky3-randomx Public

    RandomX expressed in terms of Plonky3

    fluencelabs/plonky3-randomx’s past year of commit activity
    Rust 0 0 0 0 Updated Nov 27, 2024
  • network-explorer Public

    Explorer for Fluence network

    fluencelabs/network-explorer’s past year of commit activity
    TypeScript 8 11 0 3 Updated Nov 27, 2024
  • interface-types Public Forked from wasmerio/interface-types

    The `wasmer-interface-types` crate

    fluencelabs/interface-types’s past year of commit activity
    Rust 0 4 0 2 Updated Nov 17, 2024
  • fRPC-Substrate Public

    Fluence's fRPC Substrate is a starter kit that includes all the components you need to quickly enable your dAPP with decentralized RPC using existing centralized RPC providers, e.g., Infura, Alchemy, QuickNode, etc., without touching your existing frontend Web3 code.

    fluencelabs/fRPC-Substrate’s past year of commit activity
    Rust 21 Apache-2.0 8 1 16 Updated Nov 17, 2024