fork of radicle with Git LFS support, backed by IPFS
Go to file
Fintan Halpenny 1f837c6572
node: implement tracking and routing
The routing function for Node was not implemented and there were no
functions for getting any tracking information.

This implements routing, tracked_repos, and tracked_nodes. To
accomplish this it was necessary to add associated types to the
Handler trait so that implementations could differ in the types they
use for returning this data, i.e. the control socket needs to use a
channel while the Node needs to return serializable data.

Currently, the Node uses a `Vec` but it would be more beneficial to
return an Iterator directly to ensure we are not always hitting the
heap.

To allow for the tracking types to be used across radicle-node (the
crate) and in radicle::node (the module), it was necessary to move
the types to the common place, i.e. radicle::node. At the same time,
new structs were added to make it easier to refer to tracked repos vs
tracked nodes.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2023-03-07 15:38:41 +01:00
.github/workflows ci: Deploy built container images 2023-02-14 20:34:55 +01:00
.nix Rust 1.67 2023-02-04 19:30:29 +01:00
radicle node: implement tracking and routing 2023-03-07 15:38:41 +01:00
radicle-cli cli: Update `inquire` crate 2023-03-07 10:39:45 +01:00
radicle-cli-test cli: Simplify & improve CLI output 2023-02-27 17:10:52 +01:00
radicle-cob cob: Don't require a local fork to exist 2023-03-01 15:40:30 +01:00
radicle-crdt crdt: Implement `GSet` type, based on `GMap` 2023-02-27 17:11:48 +01:00
radicle-crypto cob: Use hashes for operation ids 2023-02-27 17:11:48 +01:00
radicle-dag Rust 1.67 2023-02-04 19:30:29 +01:00
radicle-httpd httpd: Remove `radicle_cli` from tests 2023-03-07 15:08:11 +01:00
radicle-node node: implement tracking and routing 2023-03-07 15:38:41 +01:00
radicle-remote-helper remote-helper: Tell the user we're announcing refs 2023-03-06 15:39:35 +01:00
radicle-ssh Update to Rust 1.65 2022-11-05 12:47:26 +01:00
radicle-term cli: Update `inquire` crate 2023-03-07 10:39:45 +01:00
radicle-tools cli: Simplify & improve CLI output 2023-02-27 17:10:52 +01:00
.dockerignore Dockerize services 2022-12-14 17:15:40 +01:00
.env.seed Track peers by default on the seed server 2023-03-01 13:00:34 +01:00
.gitignore Initial commit 2022-09-13 10:13:13 +02:00
CONTRIBUTING.md Add licenses and contributor information 2022-11-16 12:26:12 +01:00
Cargo.lock httpd: Use `radicle-term` instead of `radicle-cli::terminal` 2023-03-07 14:49:18 +01:00
Cargo.toml Initialize `radicle-term` crate 2023-03-06 10:22:50 +01:00
DCO Add licenses and contributor information 2022-11-16 12:26:12 +01:00
LICENSE-APACHE Add licenses and contributor information 2022-11-16 12:26:12 +01:00
LICENSE-MIT Add licenses and contributor information 2022-11-16 12:26:12 +01:00
README.md README: Add install instructions 2023-01-12 13:15:37 +01:00
build.rs Rust 1.67 2023-02-04 19:30:29 +01:00
docker-compose.yml Track peers by default on the seed server 2023-03-01 13:00:34 +01:00
rust-toolchain Rust 1.67 2023-02-04 19:30:29 +01:00

README.md

❤️🪵

Radicle Heartwood Protocol & Stack

Heartwood is in the early development phase and is not yet ready for use.

Installation

# Command line tools
$ cargo install --locked --path ./radicle-cli

# The radicle node
$ cargo install --locked --path ./radicle-node

# Git tool to support the 'rad://' remote scheme
$ cargo install --locked --path ./radicle-remote-helper