lightningrodlabs / moss

Creating group coherence with holochain apps
https://theweave.social
21 stars 5 forks source link

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.

Installation

You can download the latest public release here.

If you want to install an unstable dev release, you can pick one on the releases page.

Developers

Creating a Moss Tool

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

Developering on Moss itself

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

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.