Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fat Gem Releases #6

Open
bhelx opened this issue Sep 20, 2023 · 1 comment
Open

Fat Gem Releases #6

bhelx opened this issue Sep 20, 2023 · 1 comment

Comments

@bhelx
Copy link
Contributor

bhelx commented Sep 20, 2023

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:

  1. 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.
  2. 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:

extism/
├── ext/
│   └── extism/
│       └── libextism-x86_64-darwin.so
├── lib/
│   └── extism.rb
├── ...

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.

@bhelx
Copy link
Contributor Author

bhelx commented Jun 14, 2024

Could be a good first issue for a contributor!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant