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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//! # Bastion: Fault-tolerant Runtime for Rust applications
//! [](https://github.com/bastion-rs/bastion)
//!
//!
//!
//! Bastion is a fault-tolerant runtime which is designed for recovering from
//! faults based on the supervision strategies that you've passed.
//! It is designed to provide persistent runtime for applications which need
//! to be highly-available.
//!
//! ## Why Bastion?
//! If one of the questions below answered with yes, then Bastion is just for you:
//! * Do I need fault-tolerancy in my project?
//! * Do I hate to implement weird Actor traits?
//! * I shouldn't need a webserver to run an actor system, right?
//! * Do I want to make my existing code unbreakable?
//! * Do I have some trust issues against orchestration systems? Because I want to implement my own application lifecycle.
//!
//! ## Features
//! * Message-based communication makes this project a lean mesh of actor system.
//! * without web servers, weird shenanigans, forced trait implementations, and static dispatch.
//! * Runtime fault-tolerance makes it a good candidate for small scale distributed system code.
//! * If you want to smell of Erlang and it's powerful aspects in Rust. That's it!
//! * Supervision makes it easy to manage lifecycles.
//! * Kill your application in certain condition or restart you subprocesses whenever a certain condition met.
//! All up to you. And it should be up to you.
//!
extern crate log;
extern crate env_logger;
// The Nether
// Modules which are not exposed to the user.
// The Overworld