My plugins support several formats, to be specific VST2, VST3, and AudioUnit. Each format is totally independent and separated bundle/binary.
Recently, as an experiment, I made a single all-in-one binary that exports entry points for each format and made all plugin binaries hardlinks to a single inode on the disk. The size of this all-in-one single binary is less than sizes of all three or any two combined. It is totally expected since they share a lot of common processing code. Also, because all these three are effectively the same file on disk, DAW loads it only once, even if I use all three formats in the same project. All common resources inside bundle can be also hardlinked. AudioUnit is not an option for windows, but VST's can still be merged together.
So the question is, other than hassle with installation and updates, are there potential problems if I deliver different formats as hardlinks to the same physical binary? Maybe somebody did or does deliver plugins this way? Are there pros?
Does it make sense to put several plugin formats in a single binary?
-
- KVRian
- 1110 posts since 3 May, 2005 from Victoria, BC
JUCE used to work this way until a few years ago, it was great. It was no longer possible with AUv3 for some reason.
Faster build times, smaller downloads.
But I'd really advise hard links. Just make your installer install it twice. Do any installers even support hard links? I don't think users understand hard links at all, especially on Windows.
Faster build times, smaller downloads.
But I'd really advise hard links. Just make your installer install it twice. Do any installers even support hard links? I don't think users understand hard links at all, especially on Windows.
- KVRist
- Topic Starter
- 243 posts since 24 Aug, 2014
Unfortunately installing twice does not have pluses of hardlinks. In that case it is really better to have designated binary for each format.
They don't support hardlinks per se but they do support scripting and hardlinking may be implemented in scripts.