For my system layer project, I need a fast, low-RAM-usage, flexible, extensible daemon that speaks the Syndicate network protocol and exposes dataspace and system management services to other processes.
So I built one in Rust.
It uses the Syndicated Actor Model internally to structure its
concurrent activities. The actor model implementation is split out
into a crate of its own,
syndicate, that can be used by
other programs. There is also a crate of macros,
makes working with dataspace patterns over Preserves values a bit
The implementation includes:
Actor supervision, inspired by Erlang/OTP’s supervisors;
Full support for a tree of nested facets within each actor, representing that actor’s conversational contexts;
A gatekeeper that resolves long-lived, “sturdy” references like
<ref "syndicate"  #[pkgN9TBmEd3Q04grVG4Zdw==]>
to on-the-wire usable object capability references;
inotify-based configuration watcher service that monitors a directory full of Preserves text files for changes;