タイトル: インストール (Genie.jl)
SEOタイトル: Julia の Web フレームワーク Genie.jl のインストール手順と Hello World
| この記事の要点 |
|
Genie.jl とは
Genie.jl は Julia 言語で書かれた高速 Web アプリケーションフレームワークです。Rails / Phoenix / Django に近い「フルスタック」型で、ルーティング・テンプレート・ORM (SearchLight.jl)・WebSocket をひと通り備えています。データサイエンス系の Julia 資産(DataFrames / Plots.jl)と Web を組み合わせたい場合に強力な選択肢になります。
必要環境
| 項目 | 推奨 | 備考 |
|---|---|---|
| Julia | 1.6 LTS 以上 / 1.10 推奨 | 1.10 が現行 LTS |
| OS | Linux / macOS / Windows | すべて公式対応 |
| メモリ | 4 GB 以上 | パッケージプリコンパイルで一時的に増える |
| ストレージ | 2 GB 以上 | ~/.julia 下にパッケージキャッシュ |
| Genie 推奨 | v5.x 系(2024 以降) | Julia 1.6+ 必須 |
Step 1: Julia をインストール
Julia 公式の juliaup(バージョンマネージャ)を使うのが推奨。
# Linux / macOS
curl -fsSL https://install.julialang.org | sh
# Windows (PowerShell)
winget install julia -s msstore
# バージョン確認
julia --version
# julia version 1.10.4
# 旧バージョンが入っている場合は最新へ
juliaup update
juliaup default release
Step 2: Genie パッケージを追加
Julia REPL を起動し、Pkg モードで Genie を追加します。
# REPL 起動
$ julia
julia> using Pkg
julia> Pkg.add("Genie")
# または ] でパッケージモードに入って add
julia> ] # 押すとプロンプトが (@v1.10) pkg> に変わる
(@v1.10) pkg> add Genie
(@v1.10) pkg> status
[c43c736e] Genie v5.x.x
初回は依存パッケージのダウンロードとプリコンパイルで 5〜10 分かかります。終わると ~/.julia/packages/Genie 配下に展開されます。
Step 3: 最新開発版を使う場合
GitHub の master を直接取得することもできます。
julia> using Pkg
julia> Pkg.add(url="https://github.com/GenieFramework/Genie.jl.git")
# 特定ブランチ
julia> Pkg.add(url="https://github.com/GenieFramework/Genie.jl.git", rev="develop")
# 開発モード(自分でフォークして改造)
julia> Pkg.develop(url="https://github.com/myname/Genie.jl.git")
# → ~/.julia/dev/Genie に clone される
Step 4: 最小プロジェクトで Hello World
# app.jl
using Genie
using Genie.Router
route("/") do
"Hello, Genie.jl from Julia!"
end
route("/json") do
Genie.Renderer.Json.json(Dict("status" => "ok", "lang" => "Julia"))
end
# 起動
Genie.up(8000)
# → http://localhost:8000/
これだけで HTTP サーバが立ち上がり、ルート / にアクセスすると "Hello, Genie.jl from Julia!" が返ります。
Step 5: 本格的なアプリ雛形を生成
# 雛形を生成
julia> using Genie
julia> Genie.Generator.newapp("MyApp")
# bin/ や config/, app/ などの Rails ライクなディレクトリ構造が作られる
# MyApp/
# ├── app/ # コントローラ・ビュー
# ├── bin/ # 起動スクリプト
# ├── config/ # ルーティング・初期化
# ├── db/ # マイグレーション
# ├── public/ # 静的ファイル
# ├── routes.jl # ルート定義
# └── Project.toml
# 起動 (シェルから)
$ cd MyApp
$ ./bin/server # Linux/macOS
$ bin\server.bat # Windows
# → http://localhost:8000
Step 6: 開発環境(VS Code)
Julia 公式拡張をインストール:
- VS Code — Extensions — Julia (julialang.language-julia)
- REPL:
Alt+J Alt+Oでインライン Julia REPL 起動 - デバッガ: ブレークポイント / 変数ウォッチ対応
- Linter: JuliaFormatter.jl をパッケージ追加で format 可能
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
Pkg.add で ERROR: ArgumentError | Julia バージョンが古い | juliaup update で 1.10 LTS へ |
| プリコンパイルがやたら遅い | 初回 + パッケージ多い | 2回目以降は速い。SSD 推奨 |
| ポート 8000 が使われている | 他プロセス占有 | Genie.up(8080) や config 変更 |
Windows で ./bin/server 動かない | シェル違い | bin\server.bat を使う |
| パッケージ依存衝突 | 古い環境に新版混入 | ] resolve または環境分離 |
FAQ
Q: Julia 1.5 でも動く?
A: 動かないことはないが、Genie v5 系は 1.6 以降推奨。最新版 Julia を使ってください。
Q: Python の Flask / Django と比較してメリットは?
A: Julia ネイティブなので数値計算・機械学習の処理がそのまま Web に乗るのが最大の強み。Flask + NumPy のような層境界が不要。
Q: 本番運用の事例は?
A: 小規模・社内ツール用途が中心。大規模 Web は Phoenix / Rails / Django の方が知見が多い。データサイエンス系の社内 Web に向く。