project-ideas icon indicating copy to clipboard operation
project-ideas copied to clipboard

std.interprocess

Open burner opened this issue 6 years ago • 6 comments
trafficstars

The goal of this project is to implement a flexible interprocess data structure, synchronization and communication library. An equivalent library in C++ is Boost Interprocess. The important goal would be to port all the features from boost.interprocess to D allowing the creation of structs/classes on shared memory, etc.

boost::interprocess offers the following features and it will be challenging & achieving to have these implemented in D in a stable, easy to use library that achieves all the aspects.

  • default and custom allocators to operate on shm
  • named IPC primitives: shm, semaphores, spinlock, mutex, condvar, barriers
  • standard containers like vector, deque, list, string, set that operates on shm
  • message queue on shm without relying on the kernel for data transfer. This is a huge win for low latency apps in the order of micro seconds
  • managed shared memory
  • IPC smart pointers

Get started by looking into the following:

burner avatar May 11 '19 13:05 burner

Could it be that you overlooked System V / Posix IPC queue ? Any chance of including a standardized way to do RPC at the same time ?

dkgroot avatar May 11 '19 20:05 dkgroot

I agree on the usefulness of an IPC project but since it's mentioned note that Iz's IPC module was actually a failure ( sync issues ) and is deactivated since a while. Just the primitives were working.

About the containers I think that maybe a types allocator could be used on the EMSI containers maybe.

ghost avatar May 15 '19 04:05 ghost

What if we just serialized a struct and attached TypeInfo with it? Maybe recursively copy data via pointed to by pointers too. That would let you send basic D objects.

CrazyPython avatar Sep 06 '19 15:09 CrazyPython

is this project still relevant ??? @burner

Emmankoko avatar Aug 07 '24 14:08 Emmankoko

In my opinion this project is still relevant.

burner avatar Aug 08 '24 09:08 burner

In my opinion this project is still relevant.

sent you a quick mail.

Emmankoko avatar Aug 08 '24 09:08 Emmankoko