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

Add IPC Socket support #165

Open
ecton opened this issue Feb 2, 2022 · 1 comment
Open

Add IPC Socket support #165

ecton opened this issue Feb 2, 2022 · 1 comment
Labels
networking Issues relating to either the networked server or client

Comments

@ecton
Copy link
Member

ecton commented Feb 2, 2022

This issue is to add support for IPC sockets using whatever technology the platform provides. The ability to have the server listen for traffic over an IPC socket and the client be able to connect to a local IPC socket would remove a significant amount of overhead that the networking stacks incur.

The idea occurred to me while thinking of ways to potentially synchronize multiple processes against a Nebari tree. Interestingly, I've thought a lot about multi-lingual support for BonsaiDb. I hadn't considered the idea that due to some language's lack of concurrency support that some workloads employ multiple processes rather than using a single process with multiple preemptive threads.

The other use case would be for users who want to split their app into multiple processes that operate independently and synchronize through the database server without any network traffic.

@ecton ecton added the networking Issues relating to either the networked server or client label Feb 2, 2022
@ecton
Copy link
Member Author

ecton commented Jun 1, 2023

Rust 1.70 is coming out today with UnixDatagram stabilized. While this doesn't offer a way to do IPC on Windows, it provides a std-only way to do IPC on Unix-like systems. Maybe an IPC crate using UnixDatagram and some Windows-native solution will arise by the time we tackle this.

Turns out UnixStream was already stable, and the parts that are being stabilized for UnixDatagram aren't really relevant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
networking Issues relating to either the networked server or client
Projects
None yet
Development

No branches or pull requests

1 participant