Skip to content

lightningrodlabs/we

Repository files navigation

Moss

Moss is a reference implementation of a Frame for The Weave, which can also be understood as a Holochain runtime that makes it trivially easy for groups to build collaboration spaces by composing custom "Tool" suites to meet their collaboration needs.

Moss is composed of a group management DNA, together with a defined pattern on how to build Tool DNAs that can be added to a Moss group. Each such group as well as each Tool used within a group is its own private peer-to-peer network.

Moss used to be called We, and you can read about it's early instantiation in this blogpost.

Design

For details about the design, read the design document.

Creating Moss Tools

The details on how to create a Tool can be found here.

Installation

Go to the releases page and download the latest release for your Operating System.

For Developers of Moss

Environment Setup

  1. Enter nix shell to get the holochain dev environment (follow holochain's setup instructions if you don't have nix installed yet).
nix develop
  1. Run the following command to set up the dev environment:
yarn setup

This command will

  • install all npm dependencies
  • build the required local libraries
  • build the Moss group DNA and the zomes in the crates folder
  • fetch the required holochain and lair-keystore binaries from here
  • fetch the default apps (at the time of writing those are the app library and the feedback board)
  • run the necessary commands to link the packages in libs/we-applet and libs/we-elements with yarn link to have them be hot-reloaded in the example applet

Development

The following commands build the example applet and then run we in "applet-dev" mode based on the we.dev.config.example.ts file.

yarn build
yarn build:example-applet
yarn applet-dev-example

Moss will start up 2 agents each with the same group and 3 applets installed. One of the applets will be in hot-reloading mode, i.e. you can modify the code in the example/ui/ directory and should see the changes immediately. You should also see changes applied to the src/renderer/src directory immediately reflected.

Rust add-ons

The Rust add-ons used in the main process are maintained in a separate repository

Build

# For windows
yarn build:win

# For macOS
yarn build:mac

# For Linux
yarn build:linux

License

License: CAL 1.0

Copyright (C) 2021-2024, Harris-Braun Enterprises, LLC

This program is free software: you can redistribute it and/or modify it under the terms of the license provided in the LICENSE file (CAL-1.0). This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.