-
It's not quite what you're describing, but TruffleRuby is Ruby on GraalVM:
https://github.com/oracle/truffleruby
Unlike GraalVM Java, as far as I can tell TruffleRuby doesn't provide a bundler that can create a single executable out of everything.
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
for Scala there's Ammonite which can do this https://ammonite.io/#MagicImports
-
Nuitka
Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4-3.13. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.
You could try Nuitka [1], but I don't have enough experience with it to say if it's any less brittle than PyInstaller.
[1]: https://nuitka.net/
-
Bootstrapping and different behavior for different versions and not being able to use the dependency ecosystem really make it a lot more difficult than people realize if you’re trying to “script” at scale.
I’ve used rust for this task but people get mad that I’m calling it a “script”. “That’s not a script that’s a program” which…sure. But so maybe we need another term for it? “Production-scripts” or something.
My experience is rewriting Ruby and bash buildpacks for the open spec CNCF Cloud Native Buildpack project (CNB) https://github.com/heroku/buildpacks
I agree that Ruby is easier to start and grow complexity, that would be a good place to start.
-
scriptisto
A language-agnostic "shebang interpreter" that enables you to write scripts in compiled languages.
Scriptisto is an underrated tool: https://github.com/igor-petruk/scriptisto
It can do the Python venv stuff behind the scenes for you and it just looks like a single Python file.
-
You actually can distribute a whole executable, python and all, with .pex tools: https://docs.pex-tool.org/
You have to mind your dependency packages and build options if you want cross-platform, but you can also "cross compile" to make distributions for a platform.
Pants is in some ways even better for building .pex files, managing options, dependencies, and lockfiles, at the expense of a bit of more complexity (understanding pants options): https://www.pantsbuild.org/
-
You actually can distribute a whole executable, python and all, with .pex tools: https://docs.pex-tool.org/
You have to mind your dependency packages and build options if you want cross-platform, but you can also "cross compile" to make distributions for a platform.
Pants is in some ways even better for building .pex files, managing options, dependencies, and lockfiles, at the expense of a bit of more complexity (understanding pants options): https://www.pantsbuild.org/
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
There are plenty of ways to have the venv automatically activate (and de-activate) when you enter/leave the directory for the project. direnv [0], mise [1], or various shell hooks.
There are useful libraries, I’m not saying there aren’t. I just dislike it when people include one as a dependency when they really didn’t need it.
[0]: https://github.com/direnv/direnv
[1]: https://github.com/jdx/mise
-
There are plenty of ways to have the venv automatically activate (and de-activate) when you enter/leave the directory for the project. direnv [0], mise [1], or various shell hooks.
There are useful libraries, I’m not saying there aren’t. I just dislike it when people include one as a dependency when they really didn’t need it.
[0]: https://github.com/direnv/direnv
[1]: https://github.com/jdx/mise
-
-
I've been working (intermittently) on a project to do exactly this: https://github.com/0mWh/ruby-linux-initrd
Related posts
-
Ask HN: What Open Source Projects Need Help?
-
Open source development
-
Pyenv – lets you easily switch between multiple versions of Python
-
Ask HN: What side projects landed you a job?
-
As if there weren't enough packaging tools already: mitsuhiko/rye: an experimental alternative to poetry/pip/pipenv/venv/virtualenv/pdm/hatch/…