Warning: Exocore is at a very early development stage, hence incomplete, unstable, and probably totally unsafe. Use at your own risk.
Exocore is a distributed applications framework with private and encrypted data storage. Think of it as an infrastructure that allows a user to own his own personal cloud that is extensible via WebAssembly applications and accessible via Web/Mobile/Backend SDKs. It is designed to be resilient to failures and will eventually allow offline usage (ex: on mobile).
Exocore is primarily built for Exomind, a personal knowledge management tool built in parallel to this project. Exocore is the application framework for Exomind.
The primary concept in Exocore is a Cell, which is a unique container for a user's applications and data.
A cell consists of:
Build dependencies
apt install build-essential pkg-config libssl-dev
clippy
and rustfmt
: rustup component add clippy rustfmt
brew install capnp
apt install capnproto
brew install protobuf swift-protobuf
apt install protobuf-compiler
CLI:
./tools/install.sh
or cd exo && cargo install --path .
or grab latest released binary.Configuration
./examples/node.yaml
].
exo
can also generate and manage configurations. See Quick start.On node 1
Generate configuration:
exo --dir ./node1 node init --name node1
Edit configuration to include unique and accessible addresses:
exo -d ./node1 config edit
Generate a cell:
exo -d ./node1 cell init --name my_cell
On node 2
Generate configuration:
exo --dir ./node2 node init --name node1
Edit configuration to include unique and accessible addresses. If both nodes are running on the same machine, make sure they have unique ports.
exo -d ./node2 config edit
Request to join the cell as a chain and store node.
This will use exocore's discovery server (disco.exocore.io
) to exchange configurations:
exo -d ./node2 cell join --chain --store
and copy the displayed discovery PIN.
On node 1:
Add node 2 to cell:
exo -d ./node1 cell node add
Paste node 2's discovery PIN and accept its join request.
Start both nodes:
exo -d ./node1 daemon
exo -d ./node2 daemon
Version | Tag | Published |
---|---|---|
0.1.21 | 2mos ago | |
0.1.20 | 3mos ago | |
0.1.19 | 4mos ago | |
0.1.18 | 6mos ago |