Genieとは、Juliaで最新のWebアプリケーションを開発するためのフルスタックMVC Webフレームワークである。

目次

Genieのインストール

Genieをインストールするには、JuliaのREPLを起動して、]キーを押下する。Enterキーを押下する必要はない。

julia> ]

]キーを押下すると、Juliaがパッケージモードに切り替わり、プロンプトの表示が変わる。

(v1.1) pkg>

Juliaがパッケージモードに切り替わったら、addコマンドでGenieパッケージを追加する。

(v1.1) pkg> add https://github.com/essenciary/Genie.jl
   Cloning git-repo `https://github.com/essenciary/Genie.jl`
  Updating git-repo `https://github.com/essenciary/Genie.jl`
   Cloning default registries into `C:\Users\tsuka\.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
    Added registry `General` to `C:\Users\tsuka\.julia\registries\General`
 Resolving package versions...
 Installed AbstractTrees ────── v0.2.1
 Installed Reexport ─────────── v0.2.0
 Installed Compat ───────────── v2.0.0
 Installed IniFile ──────────── v0.5.0
 Installed Codecs ───────────── v0.5.0
 Installed Nettle ───────────── v0.4.0
 Installed OrderedCollections ─ v1.0.2
 Installed BinDeps ──────────── v0.8.10
 Installed HttpCommon ───────── v0.5.0
 Installed LoweredCodeUtils ─── v0.2.0
 Installed MiniLogging ──────── v0.2.0
 Installed Nullables ────────── v0.0.8
 Installed TextWrap ─────────── v0.3.0
 Installed YAML ─────────────── v0.3.2
 Installed Revise ───────────── v2.0.0
 Installed URIParser ────────── v0.4.0
 Installed HTTP ─────────────── v0.8.0
 Installed Gumbo ────────────── v0.5.1
 Installed MbedTLS ──────────── v0.6.8
 Installed JuliaInterpreter ─── v0.3.1
 Installed BinaryProvider ───── v0.5.3
 Installed Millboard ────────── v0.2.0
 Installed CodeTracking ─────── v0.4.0
 Installed JSON ─────────────── v0.20.0
 Installed ArgParse ─────────── v0.6.2
  Updating `C:\Users\tsuka\.julia\environments\v1.1\Project.toml`
  [c43c736e] + Genie v0.8.9 #master (https://github.com/essenciary/Genie.jl)
  Updating `C:\Users\tsuka\.julia\environments\v1.1\Manifest.toml`
  [1520ce14] + AbstractTrees v0.2.1
  [c7e460c6] + ArgParse v0.6.2
  [9e28174c] + BinDeps v0.8.10
  [b99e7846] + BinaryProvider v0.5.3
  [da1fd8a2] + CodeTracking v0.4.0
  [19ecbf4d] + Codecs v0.5.0
  [34da2185] + Compat v2.0.0
  [c43c736e] + Genie v0.8.9 #master (https://github.com/essenciary/Genie.jl)
  [708ec375] + Gumbo v0.5.1
  [cd3eb016] + HTTP v0.8.0
  [77172c1b] + HttpCommon v0.5.0
  [83e8ac13] + IniFile v0.5.0
  [682c06a0] + JSON v0.20.0
  [aa1ae85d] + JuliaInterpreter v0.3.1
  [6f1432cf] + LoweredCodeUtils v0.2.0
  [739be429] + MbedTLS v0.6.8
  [39ec1447] + Millboard v0.2.0
  [f59402ec] + MiniLogging v0.2.0
  [49dea1ee] + Nettle v0.4.0
  [4d1e1d77] + Nullables v0.0.8
  [bac558e1] + OrderedCollections v1.0.2
  [189a3867] + Reexport v0.2.0
  [295af30f] + Revise v2.0.0
  [b718987f] + TextWrap v0.3.0
  [30578b45] + URIParser v0.4.0
  [ddb6d928] + YAML v0.3.2
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [8bb1440f] + DelimitedFiles
  [8ba89e20] + Distributed
  [7b1f6079] + FileWatching
  [b77e0a4c] + InteractiveUtils
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [37e2e46d] + LinearAlgebra
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [a63ad114] + Mmap
  [44cfe95a] + Pkg
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA
  [9e88b42a] + Serialization
  [1a1011a3] + SharedArrays
  [6462fe0b] + Sockets
  [2f01184e] + SparseArrays
  [10745b16] + Statistics
  [8dfed614] + Test
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
 Building Nettle ─→ `C:\Users\tsuka\.julia\packages\Nettle\SES5O\deps\build.log`
 Building MbedTLS → `C:\Users\tsuka\.julia\packages\MbedTLS\X4xar\deps\build.log`
 Building Gumbo ──→ `C:\Users\tsuka\.julia\packages\Gumbo\G7Qbw\deps\build.log`

(v1.1) pkg>

パッケージを追加したら、Backspaceキーを押下して、パッケージモードを終了する。

usingコマンドでGenieをスコープに追加する。

julia> using Genie
[ Info: Precompiling Genie [c43c736e-a2d1-11e8-161f-af95117fbd1e]
[ Info: Generating builtins for this julia version...

julia>

Webアプリケーションの生成

アプリケーションを生成する。


julia> Genie.REPL.new_app("example")
2019-03-21 22:07:03:INFO:Main: Done! New app created at C:\Users\tsuka\AppData\Local\Julia-1.1.0\example
2019-03-21 22:07:03:DEBUG:Main: Changing active directory to example
2019-03-21 22:07:03:DEBUG:Main: Installing app dependencies
  Updating registry at `C:\Users\tsuka\.julia\registries\General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Installed CodeTracking ─ v0.3.1
 Installed Revise ─────── v1.1.0
2019-03-21 22:08:27:INFO:Main: Starting your brand new Genie app - hang tight!
 _____         _
|   __|___ ___|_|___
|  |  | -_|   | | -_|
|_____|___|_|_|_|___|

┌ Info:
│ Starting Genie in >> DEV << mode
└
[ Info: Logging to file at C:\Users\tsuka\AppData\Local\Julia-1.1.0\example\log\dev.log
2019-03-21 22:08:52:WARN:Main: Failed Revise tracking of C:\Users\tsuka\AppData\Local\Julia-1.1.0\example\config\initializers\searchlight.jl
[ Info: Ready!
2019-03-21 22:09:15:DEBUG:Main: Web Server starting at http://127.0.0.1:8000
2019-03-21 22:09:15:DEBUG:Main: Web Server running at http://127.0.0.1:8000

julia>

Webブラウザを起動して、URL「http://127.0.0.1:8000」を開くと、アプリケーションの画面が表示される。

Genie Welcome

生成されたWebアプリケーションのファイル構造は、次のようになっている。

生成されたフォルダの中に.gitkeepというファイルが入っていることがあるが、これはダミーファイルである。Gitでは空のフォルダをリポジトリに登録できないため、空のフォルダには.gitkeepというファイルを配置するのが慣習となっているためである。

生成されたアプリケーションには、次のものが含まれている。

SEO [PR] !uO z[y[WJ Cu