Traveling Ruby: self-contained, portable Ruby binaries
phusion.github.io
phusion.github.io
Tutorial 1 tells you how to build a cross-platform Ruby release, doesn't tell you how to build it for one of the 3 major platforms until tutorial... not 2, not 3, but 4. They even tell you in Tutorial 4 that "there are caveats!" and the document almost begs you not to bother.
OSX and Linux users aren't the ones having trouble running Ruby programs. You're not traveling anywhere if you only support POSIX systems that either come pre-installed with Ruby or are a minor command away from having it. This seems entirely pointless to me.
Either way, foobarwidget deserves props for releasing this at the time as it’s gotten some great use!
An upcoming solution would be Truffle Ruby with SubstrateVM. But turns out Sulong; even with the help of LLVM compiling C to Graal is a little harder than I thought ( May be the fault of LLVM bitcode ). So it is taking a little more time than expected.
enclode.io/ruby-packer seems very interesting. They use a very different approach. I wouldn't call it "better" because it has both pros and cons compared to Traveling Ruby. This also relates to your doubts about whether Traveling Ruby's approach to native extensions is sustainable or not.
ruby-packer supplies a patched Ruby. It compiles that Ruby (along with native extensions) locally, and packs it into a squashfs archive. Ruby is patched to look inside the squashfs as well on the real filesystem.
Pros: single file, works with all native extensions.
Cons: you need access to all platforms for which you want to distribute (no cross-packaging support), Ruby must be patched and maintaining patches is very labor-intensive.
For Traveling Ruby, I simply made a different set of tradeoffs. I valued cross-packaging support. I wanted to be able to package for Mac, Linux and Windows while only using a Mac (or only using Linux, or only using Windows), instead of setting up build environments for all 3. This is especially important for Windows support: requiring packagers to setup a Windows system with a proper compilation toolchain is a huge pain. Until we have better cross-compilation tooling in general that works on all 3 platforms, using precompiled native extensions is the only way to make things work.
It lets you put a full Ruby MRI install in a portable location. Works on most (all?) platforms.
Could be worth a check
https://github.com/pmq20/ruby-packer
I only used it once to test something and it worked nicely.
These days I do a lot more python and xar/pex files are a really convenient way to distribute tooling, I always wished the Ruby ecosystem would have more of this kind of tooling.
I'm just wondering does anyone use Lambda with Ruby (with this or otherwise?) Is it as kludgy as it looks?
I found a couple of better looking options to do FaaS-style development on Kubernetes with Ruby, namely riff and kubeless, but I don't expect supporting code to come for AWS or from Amazon any time soon. Anyone who uses Ruby disagree?
https://github.com/mruby/mruby
A getting started from 2012
https://matt.aimonetti.net/posts/2012/04/25/getting-started-...
(Did you implement serverless but in another language? mRuby was too cumbersome from what it sounds like, did you keep Ruby but ditch serverless? How is your stuff hosted today?)