2022年6月13日月曜日

(Ruby) falcon を試す

(Ruby) falcon を試す

概要

falcon は Ruby の Webサーバです
thin の代わりに使ってみました
アプリケーションフレームワークは sinatra を使います

環境

  • macOS 11.6.6
  • Ruby 3.1.1p18
    • falcon 0.39.2

インストール

  • bundle init
  • vim Gemfile
gem "sinatra"
gem "falcon"
  • bundle install

Getting Started

  • vim app.rb
require 'sinatra'

class WebApp < Sinatra::Base
  get '/' do
    'ok'
  end
end
  • bundle exec falcon --port 9292
  • curl -k https://localhost:9292

デフォルトは 9292 ポートです
https で起動するのでとりあえず警告を無視するため -k を付与しています

rackup 経由で起動する

  • vim config.ru
require './app'

run WebApp
  • bundle exec rackup config.ru
  • curl localhost:9292

Rack 経由の場合は http で動作します
falcon のオプションはすべて使うことはできないので注意してください

公式だと rackup 経由の動作ではシングルスレッド+HTTP1 になってしまいパフォーマンスが低下するので直接 falcon を動かすのを推奨しています
https://socketry.github.io/falcon/guides/getting-started/index.html

最後に

thin -> falcon の乗り換え自体は Gemfile を書き換えるだけなので簡単にできます
しかし falcon は単体で動作することを想定しているためアプリケーションが Rack の機能を多く使っている場合にはその辺りの移植が必要になりそうです

0 件のコメント:

コメントを投稿