https://github.com/ardatetikbey/standalone-ruby
A project that allows you to convert your Ruby projects to exe files and make them independent of Ruby installations.
https://github.com/ardatetikbey/standalone-ruby
batch ruby ruby-exe rubylang standalone-ruby vbscript
Last synced: 8 months ago
JSON representation
A project that allows you to convert your Ruby projects to exe files and make them independent of Ruby installations.
- Host: GitHub
- URL: https://github.com/ardatetikbey/standalone-ruby
- Owner: ardatetikbey
- License: mit
- Created: 2025-03-27T09:44:29.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-04-11T15:38:26.000Z (9 months ago)
- Last Synced: 2025-04-11T16:27:34.634Z (9 months ago)
- Topics: batch, ruby, ruby-exe, rubylang, standalone-ruby, vbscript
- Language: Ruby
- Homepage: https://rubygems.org/gems/standalone-ruby
- Size: 39.5 MB
- Stars: 30
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Project: Standalone Ruby
---
## Overview
- Convert your Ruby projects to exe files!
- For a program output example you can take a look at in the [example](https://github.com/ardatetikbey/Standalone-Ruby/tree/main/example) folder.
---
## Installation
```bash
gem install standalone-ruby
```
---
## Parameters
```
C:\Users\ardat>standalone-ruby -h
Standalone-Ruby - Convert your Ruby projects to exe files!
Usage: standalone-ruby [--help] [--project-path PROJECT_PATH] [--ruby-path RUBY_PATH] [--main-file MAIN_FILE] [--launcher LAUNCHER] [--gui]
[--template TEMPLATE] [--exe-file EXE_FILE] [--threads THREADS] [--resource-file resource_file] [--gcc] [--version]
Required Options:
--project-path PROJECT_PATH
Target Ruby project path.
--ruby RUBY_PATH
Path to the Ruby interpreter.
--main-file MAIN_FILE
Path to the main Ruby file of the project.
Extra Options:
--exe-file EXE_FILE
Name of the exe file to be used for output (default is program.exe).
--threads THREADS
Number of threads to use (default is 5). Determines the number of threads used during the Ruby interpreter
copy process and for Robocopy operations. A higher number of threads can speed up the process, but requires more system resources.
--resource-file RESOURCE_FILE
Resource file (.rc) for the exe file to be created. Only possible with MinGW.
--help
Show this help message and exit.
--version
Show program version and exit.
--gcc
Use GCC compiler for exe file.
--gui
This option allows the rubyw.exe file in the bin folder to be used.
You can choose it for projects that include GUI.
```
---
## Usage
### Basic Usage
You can obtain an .exe file with the following command:
```bash
standalone-ruby --ruby-path C:\Ruby34-x64 --main-file C:\Users\ardat\Desktop\example\main.rb --project-path C:\Users\ardat\Desktop\example
```
### Detailed Usage
We will use the GCC compiler in detailed usage. Please make sure that MinGW is installed on your computer.
```bash
standalone-ruby --ruby-path C:\Ruby34-x64 --main-file C:\Users\ardat\Desktop\example\main.rb --project-path C:\Users\ardat\Desktop\example --exe-file program.exe --gcc --resource-file C:\Users\ardat\Desktop\C\program.rc
```
To create a .exe file with a custom icon, you need to use GCC.
Add the value defined by the --resource-file parameter to the top of the .rc file, as in the example:
Example:
```
#include
1 ICON "C:\\Users\\arda\\Desktop\\test.ico" // Your ICON path
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "ArdaTetik\0"
VALUE "FileDescription", "MyProgram\0"
VALUE "FileVersion", "1.0.0.0\0"
VALUE "ProductName", "MyProgram\0"
END
END
END
```
---
## Notes
- Make sure that the Ruby interpreter you are using includes all the gem files for the project you will be running.
- Make sure that the provided paths are valid and accessible from your system.
- The `threads` option can significantly impact performance during the copying process, so use it wisely based on your system’s capabilities.
- The location changes of the project directories might prevent the program from working.
- Although it is very rare, some antiviruses can detect the exe files as viruses. This is not my fault,
you may encounter such results when converting dynamic languages to exe. I have solved most of this problem.
---
## To Do List
- Packaged One-File Exe Support - The output of the exe file will be able to used as a single file.
- CLI Support - Support will be added for the programs that take parametres from the command line.
- Zip Packaging - Zip packaging support will be added to decrease the size of the output.
- Encrypted Ruby Execution - Ruby scripts will be encrypted for protection and will have an option to be decrypted and executed.
---
## License
- This project is licensed under the MIT License.
---
## Thanks!
- https://github.com/TrueHalo - I would like to thank Ahmet Bahadır Bakır for his help in translating the documents.