Exerb Project
ようこそ

# Exerbへようこそ

## 目次

1. 概要
2. 特徴
3. 利点と欠点
   1. 利点
   2. 欠点
4. インストール
5. 使用方法
6. ドキュメント
7. 参考Webサイト
8. その他

## 1.概要

Exerbは、RubyスクリプトをWindows実行形式ファイル（以下、実行ファイル）に変換するためのソフトウェアです。

Exerbは、同梱の「Exerbコア」とユーザーが準備した「レシピファイル」を入力することで、実行ファイルを生成します。 ExerbコアにはRubyインタプリタが含まれており、生成された実行ファイルを起動すると、このRubyインタプリタでRubyスクリプトが実行されます。 レシピファイルには実行ファイル内に格納するRubyスクリプトや拡張ライブラリの情報、各種設定を記述します。

## 2.特徴

Exerbの主な特徴は下記の通りです。

- 複数のRubyスクリプトファイル、拡張ライブラリファイルを単一の実行ファイルに変換することができます。
- 生成された実行ファイルは、Rubyインタプリタが存在しない環境でも実行することができます。
- 実行ファイルへの変換に、コンパイラ等の外部ソフトウェアを必要としません。

## 3.利点と欠点

Exerbを用いてRubyスクリプトを実行ファイルに変換することによる利点と欠点は、下記の通りです。

### 3.1.利点

- Ruby言語の持つ高い生産性を活用して、手軽にWindowsソフトウェアを作成することができます。
- 一般的なコンパイラ、リンカで生成された実行ファイルと同様に扱うことができます。
- 複数のファイルを単一のファイルにまとめることができるため、ファイル管理・配布が容易です。
- Rubyインタプリタを内蔵しているため、配布が容易です。
- 異なるバージョンのRubyインタプリタで動作するRubyスクリプトを、一つの環境に混在させることができます。
- RubyスクリプトをRubyインタプリタに関連付けて起動する場合と異なり、標準入出力がそのまま利用できます。

### 3.2.欠点

- Rubyスクリプト、拡張ライブラリが正常に動作しない場合があります。
- Rubyインタプリタを内蔵しているため、実行ファイルの最低サイズが約500kbと大きめです。（ランタイムDLLを利用しない場合）
- 実行ファイル内にそのままソースコードを格納するため、リバースエンジニアリングが容易です。
- MSVCRT32版Rubyに存在しない機能（fork等）が利用できません。

ただし、実行ファイルサイズについては、ランタイムライブラリを使用するExerbコアを用いることで改善できます。

## 4.インストール

インストールするには、同梱のsetup.rbを実行してください。 インストール先によっては、管理者権限が必要です。

$ ruby setup.rb

## 5.使用方法

exerbコマンドの使用方法は下記の通りです。

$ exerb [オプション] {スクリプトファイル|レシピファイル}

簡単な使用例についてはチュートリアルを、同梱のサンプルについては使用例を参照してください。 また、コマンドリファレンス、レシピリファレンスもそれぞれ参照してください。

## 6.ドキュメント

チュートリアル
  Exerbの基本的な使用法について。
使用例
  Exerbに同梱されている使用例について。
コマンドリファレンス
  exerbコマンドをはじめとするコマンドについて。
レシピリファレンス
  レシピファイルの記述法などについて。
コアリファレンス
  コアファイルの種類について。
クラスリファレンス
  Exerb実行時モジュールについて。
適用されるライセンス、著作権、免責について
  Exerbのライセンス、Exerbによって生成した実行ファイルのライセンスなどについて。生成した実行ファイルを配布する前に、必ずお読みください。
その他の情報
  Exerbに関するその他の情報。

## 7.参考Webサイト

Exerb Project
  Exerb Projectの本家Webサイト。Exerbの最新リリース等を入手できます。
オブジェクト指向スクリプト言語Ruby
  Rubyの本家Webサイト。Rubyのソースコード、リファレンスマニュアル、各種ライブラリ等を入手できます。

## 8.その他

Exerbは加藤勇也によって開発されたソフトウェアです。 Exerbに関するご意見、バグ報告等はyuyakato@gmail.comまでお送りください。

Rubyを開発されたまつもとゆきひろ氏と、開発に関わったすべての方々に深く感謝します。 素晴らしい言語、開発環境をありがとう！