fork of radicle with Git LFS support, backed by IPFS
Go to file
Fintan Halpenny e408b0d62c
node: use enum for fetch direction
A fetch is a client-server interaction and so there are two sides to
this interaction. These sides are generally referred to as receive --
the client side -- and upload -- the server side.

The `Fetch` type indicated whether it was doing a receive or upload by
using a field `initiated: bool`. However, this can be confusing when
you pair it with the `namespaces: Namespaces` field, since only the
receive side should be sending what refspecs it wants and the upload
side responds with those matching refspecs.

A better way to represent this is using an enum for which direction
the fetch is being considered, where the receive side contains the
Namespaces. To borrow from Noise, the variant names are 'Initiator'
for the client and 'Responder' for the server.

The resulting code then makes decisions based on what variant of the
enum was passed.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2023-03-08 10:12:54 +00: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: wire up connect command 2023-03-07 15:38:41 +01:00
radicle-cli node: Handle case of crossing fetch requests 2023-03-07 16:22:22 +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: use enum for fetch direction 2023-03-08 10:12:54 +00: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