Instead of asking people to install the Extism runtime shared object separately, we should include the runtime with the gem. There seem to be 2 ways to do this:
Bundle the gem with the shared object for each architecture. Let the gem decide which shared object to load at runtime based on the architecture it's running on.
Have the gem pull down the shared object as part of the gem install process. This can apparently be done with a rake task.
The recommended option seems to be the first option. How we publish it, I'm a little unsure. Apparently you can drop the object in the ext folder. Something like this:
One question I'd have is do we pack all the supported archs into that folder? I think this is within the limits of rubygems but how big would it be? We may want to have a process where it can fallback to looking on the system for the library and log a little warning message.
Instead of asking people to install the Extism runtime shared object separately, we should include the runtime with the gem. There seem to be 2 ways to do this:
The recommended option seems to be the first option. How we publish it, I'm a little unsure. Apparently you can drop the object in the
ext
folder. Something like this:One question I'd have is do we pack all the supported archs into that folder? I think this is within the limits of rubygems but how big would it be? We may want to have a process where it can fallback to looking on the system for the library and log a little warning message.