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//