An attempt at fiddling together a distributed infrastructure similar to ROS
Update to Axiom 0.1
Make publishers notified when subscribers change.


browse log



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 information
  • 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 fail
  • 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