overview/lib.rs
1// LIB.rs
2// by Lut99
3//
4// Created:
5// 02 Oct 2023, 12:03:47
6// Last edited:
7// 02 Oct 2023, 13:39:34
8// Auto updated?
9// Yes
10//
11// Description:
12//! Welcome to the Brane code documentation!
13//!
14//! On this page, you can find the auto-generated docs from [Cargo Docs](https://doc.rust-lang.org/cargo/commands/cargo-doc.html).
15//! More high-level documentation can be found at <https://wiki.enablingpersonalizedinterventions.nl>.
16//!
17//! The current instance of this documentation is generated for **Linux (x86-64)**, Brane version **3.0.0**.
18//!
19//! # Crate structure
20//! The crates part of this project can be found in the sidebar on the left.
21//!
22//! **Documentation-only**:
23//! - `overview`: This crate, acting as an entrypoint to the documentation only.
24//!
25//! **Binaries**:
26//! - `brane-cli` (named `brane` in the docs): The `brane` CLI tool, which is used by the end users of the framework (_scientists_ and _software engineers_) to interact with Brane instances.
27//! - `brane-ctl` (named `branectl` in the docs): The `branectl` CTL tool, which is used by system administrators to manage a Brane node.
28//! - `brane-cc` (named `branec` in the docs): The `branec` compiler that can compile BraneScript to the WIR (see the docs).
29//! - `brane-let` (named `branelet` in the docs): The `branelet` delegate executable that runs in Brane containers.
30//!
31//! **Shared libraries**:
32//! - `brane-cli-c`: Provides C/C++ bindings to the Brane-client part of the `brane-cli` crate.
33//!
34//! **Services**:
35//! - `brane-drv`: Implements the _driver_ service in a Brane instance, which acts as the entrypoint and the VM executing WIR-workflows.
36//! - `brane-plr`: Implements the _planner_ service in a Brane instance, which gets incomplete workflows from the driver and turns them into executable _plans_.
37//! - `brane-api`: Implement the _global registry_ service in a Brane instance, which can be used by clients and other services to query global information of the instance.
38//! - `brane-job`: Implements the _worker_ service in a Brane instance, which takes events emitted by the driver and executes them on the local domain where it is running.
39//! - `brane-reg`: Implements the _local registry_ service in a Brane instance, which can be used by other services to query domain-local information of the instance.
40//! - `brane-prx`: Implement the _proxy_ service in a Brane instance, which interface with the [BFC Framework](https://github.com/epi-project/EPIF-Configurations) and can route traffic through proxies as it travels between nodes.
41//! - `brane-log`: Unused, but used to implement a lister on Kafka channels to log events.
42//!
43//! **Libraries**:
44//! - `brane-tsk`: Implements shared code used by the Brane VM plugins.
45//! - `brane-exe`: Implements the Brane VM that executes WIR workflows.
46//! - `brane-ast`: Defines the WIR and compiles from BraneScript to the WIR.
47//! - `brane-dsl`: Defines the BraneScript AST and a parser/scanner for parsing text to it.
48//! - `brane-cfg`: Defines configuration files (and related helpers) used by the various services and created/manipulated by `brane-ctl`.
49//! - `specifications`: Defines the "Brane interface", i.e., network structs, non-config file layouts (mostly relating to user-facing files) and outward-facing traits and enums. Also contains legacy definitions for the old workflow representation.
50//! - `brane-shr`: Defines common utilities and functions that aren't really covered by `brane-cfg` or `specifications`.
51//! - `brane-oas`: Unused, but used to implement a parser for the [Open API](https://www.openapis.org/) specification language.
52//!
53//! **Graveyard**
54//! Brane also has some projects that either did not make it, were abandoned, or were replaced.
55//! Below a non-exhaustive list of those projects and what was the last version in which they
56//! were developed.
57//! - `brane-oas`: An Openapi specification crate for Brane. Removed after v3.0.0
58//! - `brane-log`: An logging interface for audit logs. Never released.
59//