Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Tokio mem channel #131

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

feat: Tokio mem channel #131

wants to merge 3 commits into from

Conversation

rklaehn
Copy link
Collaborator

@rklaehn rklaehn commented Dec 11, 2024

This is a new attempt to do a mem transport based on tokio::sync::mpsc::channel, replacing #86

The big problem of the former PR is that the listener is Clone, so there needs to be some ugly stuff to turn the tokio mpsc channel into a mpmc channel.

So this PR is an experiment to change Listener to be non-Clone and also take a &mut self in accept. Once you do that, implementing a mem channel using a mpsc channel becomes much easier.

I have tried this out in a crate, iroh-blobs, that uses rpc in a pretty complex way, and have not found an issue adapting this. Being able to clone the place that does accept is a bit weird anyway, but I did it because both my favoured memory channel at the time (flume) and the networked channel (quinn) did support it.

@rklaehn rklaehn changed the base branch from main to helpers December 11, 2024 10:51
Base automatically changed from helpers to main December 12, 2024 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant