3 ms·
Cross process shared memory is a thing on Unix so there is no need for the performance cost of copying across a pipe. Sure you have to manage if it dies, but yo
by justincormack 4y ago
Cross process shared memory is a thing on Unix so there is no need for the performance cost of copying across a pipe. Sure you have to manage if it dies, but you have to manage it crashing you in the dl case.
- malkia 4y agoBut you don't have only Linux, you have (and probably first) OSX and/or Windows and then Linux, and you need an API that works well in that case. Being an in-process dll/so plugin, while fraught with perils gets you to avoid other issues (state, health, restart, identity, etc.) Also sometimes you don't have a choice, but have to make a dll, for example: https://github.com/steinbergmedia/vst3sdk https://github.com/steinbergmedia/vst3sdk or https://ae-plugins.docsforadobe.dev/ https://ae-plugins.docsforadobe.dev/ and many others. Sometimes it's the only viable choice. (I wish most have used grpc/flatbuffers/whatever to communicate, but then every RPC call have to be checked/retried/handled, and or shared memory well handled, with (?) locks, etc. - not a trivial thing for someone who is deeply specialized in making a very good effect/renderer/etc instead of dealing with this extra complexity on top).