mpcref
mpcref5mo ago

IPC (ZeroMQ)

I want to create a service with Deno that should be callable by other (non-deno) processes running on the same machine. I've tried using ZeroMQ for this but Deno doesn't seem to be supported (I can't get it to work) and given the drama surrounding the official ZeroMQ npm package I'm inclined to look for other solutions. I could always fall back to using http but does anyone know of a more performant IPC solution for Deno given this scenario?
3 Replies
mpcref
mpcref5mo ago
simple_ipc looks like a good candidate. Not a whole lot of documentation though... And the source repo has been deleted.
Deno AI Helper
Deno AI Helper5mo ago
I wasn't able to find the answer to your question in the official Deno documentation. However, based on the information you've provided, it seems like you're looking for an inter-process communication (IPC) solution that is compatible with Deno and can communicate with non-Deno processes. While I can't provide a Deno-specific IPC solution from the official documentation, I can suggest that you consider the following general IPC methods, which are commonly used in software development: 1. Unix sockets (also known as domain sockets) for communication on the same machine. 2. Named pipes (FIFOs), which can be used for simple IPC between processes. 3. Shared memory, which allows multiple processes to access the same memory space. Please note that the advice provided here is not based on the Deno documentation, and you should double-check the accuracy of this advice and whether these methods are supported and how they can be implemented in Deno. For a performant IPC solution, you might need to look into third-party libraries or modules that could be compatible with Deno, or consider building a custom solution using Deno's standard libraries, such as the net module for TCP or UDP sockets. Remember to always consider the security implications of the IPC method you choose, especially when dealing with sensitive data or when the IPC mechanism is exposed to untrusted processes or networks.
mpcref
mpcref5mo ago
I've come to the conclusion that I should just use Deno.listen() and Deno.connect() for communication over unix or tcp sockets. I've found some very basic examples (echo and ping). I feel like I'm missing a lot of info. Such as how to implement concurrent connections. (I'm new to unix sockets BTW)