You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've looked at https://bastion.rs/, and I must say that, as a newcomer, I find the examples a bit intimidating.
I have a basic understanding of how actors work, but when I look at the site, as a newcomer, what I see:
use bastion::prelude::*;
#[fort::root]
async fn main(_: BastionContext) -> Result<(), ()> {
println!("Running in Bastion runtime!");
Ok(())
}
My reaction: "Ok... I can print things inside of a 'runtime', whatever that is... Looks simple enough."
And then:
use bastion::prelude::*;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
fn main() {
Bastion::init();
let started = AtomicBool::new(false);
let started = Arc::new(started);
Bastion::children(|children| {
children.with_exec(move |ctx: BastionContext| {
let started = started.clone();
async move {
println!("Started!");
if started.swap(true, Ordering::SeqCst) {
println!("Already started once. Stopping...");
// This will ask the system to stop itself...
Bastion::stop();
// ...and this will stop this child immediately...
return Ok(());
// Note that if Err(()) was returned, the child would have been
// restarted (and if the system wasn't stopping).
}
// This will return None.
let try_recv = ctx.try_recv().await;
// Lots more lines with supervisors, children, child groups, etc...
Bastion certainly looks interesting, and I'd love to learn more about it, but... Wow, that's a lot going on. What's the difference between a supervisor? A child group? A child? How does Fort come into that? What's a context? A runtime? Help!
As a basic example, it's a bit intimidating, there's kinda way too many concepts being introduced at once. It's probably going to scare away some beginners.
The text was updated successfully, but these errors were encountered:
Hey and thanks a lot for your feedback! It does indeed look quite overwhelming, we might need to refer to the examples instead!
We are currently trying to work on a bastion mdbook, that will hopefully ease folks into how it works, and maybe help us refactor the public APIs so they’re more convenient to use
Hello!
I've looked at https://bastion.rs/, and I must say that, as a newcomer, I find the examples a bit intimidating.
I have a basic understanding of how actors work, but when I look at the site, as a newcomer, what I see:
My reaction: "Ok... I can print things inside of a 'runtime', whatever that is... Looks simple enough."
And then:
Bastion certainly looks interesting, and I'd love to learn more about it, but... Wow, that's a lot going on. What's the difference between a supervisor? A child group? A child? How does Fort come into that? What's a context? A runtime? Help!
As a basic example, it's a bit intimidating, there's kinda way too many concepts being introduced at once. It's probably going to scare away some beginners.
The text was updated successfully, but these errors were encountered: