What is this
...For sheep are stupid, and have to be driven. But goats are
intelligent, and need to be led.
-- Terry Pratchett
ROS is basically a distributed actor system.
This code is just me playing with making something like that in Rust.
Though ROS is a library, a set of tools, all sorts of stuff, and right
now I'm just messing with a program.
Going to be using the
axiom crate, 'cause what's the point using
actix like a smart person when you can use something experimental?
Also because Axiom's docs are sexy.
- Pubsub-based actor system
- Ability to easily record and replay message logs, with timing
- Resiliant to failures -- within bounded limits. Axiom assumes
actors don't panic, because panics are more or less designed to be
fatal and have some tough limitations -- they cannot cross
FFI calls, they may abort the program, they bring down the entire
process if encountered on the main thread, etc.
- Supervisor/monitor structure to automatically restart things that
- Sequencing and dependecies for startup?
- Distributed real-time
- Multiple independent binaries that work together -- Axiom's use of
TypeId makes this tricky (though not impossible; see
- Lots of pre-made messages and stuff like ROS