89 lines
1.4 KiB
Markdown
89 lines
1.4 KiB
Markdown
# Kemal Tutorial
|
|
|
|
## 1. Install Crystal
|
|
|
|
```
|
|
brew update
|
|
brew install crystal-lang
|
|
```
|
|
|
|
## 2. Installing Kemal
|
|
|
|
You should create your application first:
|
|
|
|
```
|
|
crystal init app awesome_web_project
|
|
cd awesome_web_project
|
|
```
|
|
|
|
Then add *kemal* to the `shard.yml` file as a dependency.
|
|
|
|
```yml
|
|
dependencies:
|
|
kemal:
|
|
github: sdogruyol/kemal
|
|
branch: master
|
|
```
|
|
|
|
You should run `shards` to get dependencies:
|
|
|
|
```
|
|
shards install
|
|
```
|
|
|
|
It will output something like that:
|
|
|
|
```
|
|
$ shards install
|
|
Updating https://github.com/sdogruyol/kemal.git
|
|
Installing kemal (master)
|
|
```
|
|
|
|
## 3. Include Kemal into your project
|
|
|
|
Open `awesome_web_project/src/awesome_web_project.cr` and require `kemal` to use Kemal.
|
|
|
|
```ruby
|
|
require 'kemal'
|
|
```
|
|
|
|
## 4. Hack your project
|
|
|
|
Do some awesome stuff with awesome Kemal.
|
|
|
|
```ruby
|
|
get "/" do
|
|
"Hello World!"
|
|
end
|
|
```
|
|
|
|
All the code should look like this:
|
|
|
|
```ruby
|
|
require "./crystal_test/*"
|
|
require "kemal"
|
|
|
|
module AwesomeWebProject
|
|
get "/" do
|
|
"Hello World!"
|
|
end
|
|
end
|
|
```
|
|
|
|
## 5. Run your awesome web project.
|
|
|
|
```
|
|
crystal build --release src/awesome_web_project.cr
|
|
./awesome_web_project
|
|
```
|
|
|
|
You should see some logs like these:
|
|
|
|
```
|
|
[development] Kemal is ready to lead at http://0.0.0.0:3000
|
|
2015-12-01 13:47:48 +0200 | 200 | GET / - (666µs)
|
|
2015-12-05 13:47:48 +0200 | 404 | GET /favicon.ico - (14µs)
|
|
```
|
|
|
|
Now you can be happy with your new, very fast, readable web project.
|