This project aims to provide a fully-featured scripting platform for all operating systems in a single, small binary.
The idea emerged from a quest to find the perfect scripting tool for my Golang
projects (see blog post).
I was dissatisfied with using Make and the heavy reliance on bash scripts (hello coreutils compat issues!)
to handle all the essential tasks a software project requires. I ended up shipping the following requirements:
- Cross-Platform Compatibility: Ensuring the binary works consistently across different operating systems.
- CLI Primitives: The binary is built with support for optparse, glob patterns, and Windows path compatibility.
- Built-in HTTP/HTTPS and JSON/YAML Support: Ability to make HTTP/HTTPS calls and parse JSON/YAML directly in scripts.
- Small Self-Contained Binary: All-in-one executable without extra setup, with no additional dependencies.
- Support for Task Execution: With the included mrake library, you can organize and manage complex task workflows, similar to Makefile dependencies.
Download the mrake and mruby binaries from the Releases page and place them in a folder within your $PATH.
That’s it! You can now script using #!/usr/bin/env mruby or by creating a Rakefile.
You can check out the examples folder for sample scripts that demonstrate MRuby’s capabilities.
If your project requires a different set of dependencies, feel free to fork this project. After forking, add or remove any dependencies in the build configuration file, then enable the GitHub Action to package your own release.
Find the latest binaries on the Releases page. Each release includes pre-packaged versions for different platforms (Linux, MacOS, Windows) so you can get up and running with minimal setup.)
This project is released under the MIT License, the same as the parent project, mruby.