I work on a project called Muon - http://muoncore.io
Its aim is to enable building of “Reactive APIs”. What is meant by that is to give the ability to implement message based networked apis, rather than only having HTTP for that purpose. So, instead of just sending messages back and forth on queues (and so constraining yourself to broker semantics) on some arbitrary message broker, implement properly defined interactions, such as client managed streaming or interacting with event logs, and do that in a portable language agnostic way.
I recently presented on what progress we’ve made with Rust, which isn’t lots but has great promise. You can see that here https://skillsmatter.com/skillscasts/10898-building-message-and-event-based-apis-using-muon-rust-edition
From a research point of view, we’ve got lots of interesting things in the model. The different APIs we implement are an implementation of a finite state machine, wrapped by language idiomatic APIs. Much of that portion of the system was inspired by agent based systems, which has a long and illustrious academic heritage. We’ve done some research on auto generating the agents/ state machines from a declarative DSL, which went ok, but isn’t in the live code in the project.
So, from a dissertation point of view, I can offer :-
- Implement Rust based “plugins” to be used in the other Muon implementations. Eg, transport/ discovery. These are self contained and fairly small in scope. Here’s a very rough example I threw together one weekend of a UDP multicast discovery that embeds into the JVM and Node versions of Muon - https://github.com/muoncore/discovery-network
- Implementing Muon in Rust. I estimate it would take a month to implement the core, more to implement the transports/ apis
- Give scope for more research based work in the APIs/ protocols/ agent portion of Muon.
If any of that is interesting, would love to chat, there’s a link to join the Muon slack on the website above.