Replies: 1 comment 2 replies
-
|
Let me know if you have any specific questions :) I'll paste some of the diagrams I showed this morning, and definitely check out the major concepts section I wrote yesterday.
So the main "trick" of how things work, is that all messages are sent to the netstack. Since things are immediate, the flow goes something like:
Part of the trick is that there are ways for sockets to declare what "type" they accept. Whereas 9p is (I think?) more of a "file system protocol that you can happen to do other things with", ergot is much more like a rust channel: there's a sender and a receiver, and it's always a given type. It just HAPPENS to sometimes go over some kind of network link. |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
-
I brought this up on your morning stream this morning: I'd like to compare how you have things set up in ergot with what I've ended up putting together for implementing 9p servers / clients. The crate I've got is ninep and there's an example of writing a simple server here. The crate supports both sync and async clients/servers using an underlying sansIO layer based on coroutines. That works but involves some "interesting" tricks that abuse the Waker API for futures.
9p is specifically a filesystem protocol so there are a fixed set of message types rather than what you've got in ergot so that's already going to put a different spin on things but I'd be interested to learn more about how you've designed things.
Beta Was this translation helpful? Give feedback.
All reactions