overview/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//  LIB.rs
//    by Lut99
//
//  Created:
//    02 Oct 2023, 12:03:47
//  Last edited:
//    02 Oct 2023, 13:39:34
//  Auto updated?
//    Yes
//
//  Description:
//!   Welcome to the Brane code documentation!
//!   
//!   On this page, you can find the auto-generated docs from [Cargo Docs](https://doc.rust-lang.org/cargo/commands/cargo-doc.html).
//!   More high-level documentation can be found at <https://wiki.enablingpersonalizedinterventions.nl>.
//!
//!   The current instance of this documentation is generated for **Linux (x86-64)**, Brane version **3.0.0**.
//!
//!   # Crate structure
//!   The crates part of this project can be found in the sidebar on the left.
//!   
//!   **Documentation-only**:  
//!   - `overview`: This crate, acting as an entrypoint to the documentation only.
//!   
//!   **Binaries**:  
//!   - `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.
//!   - `brane-ctl` (named `branectl` in the docs): The `branectl` CTL tool, which is used by system administrators to manage a Brane node.
//!   - `brane-cc` (named `branec` in the docs): The `branec` compiler that can compile BraneScript to the WIR (see the docs).
//!   - `brane-let` (named `branelet` in the docs): The `branelet` delegate executable that runs in Brane containers.
//!
//!   **Shared libraries**:  
//!   - `brane-cli-c`: Provides C/C++ bindings to the Brane-client part of the `brane-cli` crate.
//!
//!   **Services**:  
//!   - `brane-drv`: Implements the _driver_ service in a Brane instance, which acts as the entrypoint and the VM executing WIR-workflows.
//!   - `brane-plr`: Implements the _planner_ service in a Brane instance, which gets incomplete workflows from the driver and turns them into executable _plans_.
//!   - `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.
//!   - `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.
//!   - `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.
//!   - `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.
//!   - `brane-log`: Unused, but used to implement a lister on Kafka channels to log events.
//!   
//!   **Libraries**:  
//!   - `brane-tsk`: Implements shared code used by the Brane VM plugins.
//!   - `brane-exe`: Implements the Brane VM that executes WIR workflows.
//!   - `brane-ast`: Defines the WIR and compiles from BraneScript to the WIR.
//!   - `brane-dsl`: Defines the BraneScript AST and a parser/scanner for parsing text to it.
//!   - `brane-cfg`: Defines configuration files (and related helpers) used by the various services and created/manipulated by `brane-ctl`.
//!   - `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.
//!   - `brane-shr`: Defines common utilities and functions that aren't really covered by `brane-cfg` or `specifications`.
//!   - `brane-oas`: Unused, but used to implement a parser for the [Open API](https://www.openapis.org/) specification language.
//!
//!   **Graveyard**
//!   Brane also has some projects that either did not make it, were abandoned, or were replaced.
//!   Below a non-exhaustive list of those projects and what was the last version in which they
//!   were developed.
//!   - `brane-oas`: An Openapi specification crate for Brane. Removed after v3.0.0
//