タグ

rackに関するWatsonのブックマーク (19)

  • [インタビュー] Aaron Patterson(後編): Rack 2、HTTP/2、セキュリティ、WebAssembly、後進へのアドバイス(翻訳)|TechRacho by BPS株式会社

    こんにちは、hachi8833です。Aaron Pattersonインタビューの続きをお送りいたします。インタビューを音声で聞いてみると、原文でカットされている細かなやりとりやくすぐりもわかって面白いと思います。 (前編): GitHubRails、日語学習、バーベキュー 概要 原著者の許諾を得て翻訳・公開いたします。 元記事: INTERVIEW: Aaron Patterson, Rack, Github and BBQ 著者: Vera Rabkina 元サイト: RubyroidLabs Blog: 有用な記事が多く、おすすめです。 写真はすべて元記事からの引用です。 6. Rack 2とHTTP/2 技術の話題に戻りましょう。Rack 2がリリースされるので私たちも備えておきたいのですが、何か役に立ちそうなことをご存知でしたら 了解です。まずはHTTP/2についてお話しましょ

    [インタビュー] Aaron Patterson(後編): Rack 2、HTTP/2、セキュリティ、WebAssembly、後進へのアドバイス(翻訳)|TechRacho by BPS株式会社
  • Ruby向けWebサーバー「PUMA 2.16」リリース | OSDN Magazine

    Ruby向けWebサーバー「PUMA」の開発チームは1月27日、最新版となる「PUMA 2.16.0」をリリースした。プロジェクトのWebサイトから入手できる。 PUMAは高速で高い並列性をもつRuby/Rackアプリケーション向けのHTTP 1.1サーバー。3条項BSDライセンスで提供されている。Cに最適化されたRagel拡張を利用して要求を処理し、内部のスレッドプールからのスレッドでリクエストを処理するのが特徴。メモリの使用はRainbows!やUnicornより大幅に少なく、速度(並列リクエストに対して1秒間に処理されたリクエスト数)はこれらよりも高いという。すべての拡張Rack対応アプリケーションで利用できる。開発および運用の両方で利用できるとし、またスループットを出すためにはRuniniusやJRubyなどのRuby実装の利用を推奨している。 PUMA 2.16は2015年11月

    Ruby向けWebサーバー「PUMA 2.16」リリース | OSDN Magazine
  • 次世代の Rack や WSGI を考えてみる - Qiita

    Rack や WSGI の代わりになる仕様を考えてみました (ライブラリ (rack.rb や wsgiref.py) のほうではなく、プロトコル仕様のほうです)。自分のアイデアを書き連ねただけなので、まとまってないかもしれませんがご了承ください。 なお稿は、今後何度か改訂すると思います。ご意見があればご自由にコメントしてください。 【対象読者】Rack や WSGI に興味のある人 【必要な知識】Rack や WSGI の基礎知識 Rack と WSGI の概要 Ruby の Rack や Python の WSGI は、HTTP のリクエストとレスポンスを抽象化した仕様です。 たとえば Rack では: 引数として、リクエストを表す Hash オブジェクトを受け取り、 戻り値として、レスポンスのステータスコードとヘッダーとボディを返します。 class RackApp def cal

    次世代の Rack や WSGI を考えてみる - Qiita
  • Rack を読む / WEBrick が起動するまで - Qiita

    最近、社内で Rails 関係のコードを読む会を持ち回りでやっていて、今週は僕が担当だったのだけど、Rack をもうちょっとちゃんと知りたかったので、Rack 対応の軽量サーバーである WEBrick を読んだ。pryで実行しながら読んだのだけど、流れを整理しておく。 TL; DR 具体的には、公式サイトのトップページに書かれた以下がどのように立ち上がりリクエストを処理するかを追った。 require 'rack' app = Proc.new do |env| ['200', {'Content-Type' => 'text/html'}, ['A barebones rack app.']] end Rack::Handler::WEBrick.run app

    Rack を読む / WEBrick が起動するまで - Qiita
  • Rhebok, High Performance Rack Handler / Rubykaigi 2015

    This document discusses Rhebok, a high performance Rack handler written in Ruby. Rhebok uses a prefork architecture for concurrency and achieves 1.5-2x better performance than Unicorn. It implements efficient network I/O using techniques like IO timeouts, TCP_NODELAY, and writev(). Rhebok also uses the ultra-fast PicoHTTPParser for HTTP request parsing. The document provides an overview of Rhebok,

    Rhebok, High Performance Rack Handler / Rubykaigi 2015
  • Rack applicationのプロファイリングにはrack-lineprofが便利 - k0kubun's blog

    RubyKaigi 2014行った。良い発表がいろいろ聞けたんだけど、最近ISUCONに向けてwebアプリのチューニングに興味があったので特にfinal keynoteが興味深かった。 その中で紹介されていたtmm1/rblineprofが行ごとの実行時間を表示してくれるのでとても便利そうだったんだけど、GitHubではpeek/peek-rblineprofというRails用のプラグインでrblineprofを活用しているので、ISUCONでおそらく使用されるであろうsinatraでどうやって使うか考えていた。 kainosnoema/rack-lineprofというgemがその用途に便利そうだったので紹介したい。 使い方 rack-lineprofはRack middlewareで、まず以下のようにuseする必要がある。 require 'rack-lineprof' class My

    Rack applicationのプロファイリングにはrack-lineprofが便利 - k0kubun's blog
  • Unicornの2倍のパフォーマンスを実現したRackサーバ「Rhebok」をリリースしました - blog.nomadscafe.jp

    “Hello World”なベンチマークでUnicornに比べ2倍高速に動作するRackサーバをリリースしました。 rubygems: http://rubygems.org/gems/rhebok github: https://github.com/kazeburo/rhebok PerlのGazelleをベースに作っています。Rackアプリケーションの運用経験がほぼないので、機能不足があると思います。issue等で教えて頂ければ幸いです。 なぜ高速に動作するアプリケーションサーバが必要なのか Unicornは高速に動作します。多くのアプリケーションにとっては十分でしょう。それでもRhebokでさらに上のパフォーマンスを出そうとしたのは、技術的なチャレンジの他に以下のようなアプリケーションで高速なアプリケーションサーバが必要とされると考えているからです。 ソーシャルゲーム、広告サーバ、

  • 「RaptorはどのようにしてUnicornの4倍、Puma, Torqueboxの2倍の速度を達成したのか」を読んでまとめてみた - Qiita

    Help us understand the problem. What is going on with this article? 「RaptorはどのようにしてUnicornの4倍、Puma, Torqueboxの2倍の速度を達成したのか」を読んでまとめてみました。 原文はこちらです。紹介については許可を貰っています。 How we've made Raptor up to 4x faster than Unicorn, up to 2x faster than Puma, Torquebox とても読みやすい英語ですので是非原文も読んでみてください。 How Ruby app servers work Rackアプリケーションの構成についての紹介と、コネクションをどのように扱うのかについて。 prefork/threadingやBlocking I/OおよびEvent I/Oの組み

    「RaptorはどのようにしてUnicornの4倍、Puma, Torqueboxの2倍の速度を達成したのか」を読んでまとめてみた - Qiita
  • Anvil for Mac で手軽に開発用バーチャルホストを立ち上げる

    Anvil という便利そうなアプリを見つけたので試しに使ってみた。OS X 向け Rack サーバの Pow を GUI で操作するツールらしい。 Anvil for Mac - Run your sites locally インストールすると以下のようにメニューバーにアイコンが表示される。ここからディレクトリを指定するだけで ディレクトリ名.dev というドメインを利用できるようになる。 xip.io を利用できるので、http://example.192.168.0.1.xip.io といった URL を叩く事で LAN 内の他のマシンからもアクセスが可能になる。 自分は Ruby で Web アプリケーション開発を全然行わないのだがローカル環境でいろいろやるには便利そうだ。

    Anvil for Mac で手軽に開発用バーチャルホストを立ち上げる
    Watson
    Watson 2014/04/07
    OS X 向け Rack サーバの Pow を GUI で操作するツールらしい
  • A Fast, Concurrent Web Server for Ruby & Rack - Puma

    Speed & Concurrency Current Release: 6.4.0 Unlike other Ruby Webservers, Puma was built for speed and parallelism. Puma is a small library that provides a very fast and concurrent HTTP 1.1 server for Ruby web applications. It is designed for running Rack apps only. What makes Puma so fast is the careful use of a Ragel extension to provide fast, accurate HTTP 1.1 protocol parsing. This makes the se

    Watson
    Watson 2012/08/25
    HTTP サーバ。メモリ消費量が少ないし、速度もあるらしい。
  • Rackをminifyした僅か100行のLackで学ぶRackの中身

    「エラーメッセージから学ぶRack最初の一歩」および「エラーメッセージから学ぶRack - Middlewareの魔法」の続きです。 前2の記事で、Rackはrackupコマンドを起動すると、defaultでconfig.ruを読み込みWebサーバを起動するということが分かりました。また、config.ruの中でuseを使ってmiddlewareを指定すると、Webアプリをラップして内側から外側に向けてそれらの#callを順次呼び出すということも分かりました。ちなみに僕はこの呼び出しスタイルを今後「マトリョーシカ呼び出し」と呼ぶことにしました。 ここで2点気になることがあります。config.ruはRubyスクリプトです。rackupコマンドの実行からRackはどうやってこのファイルを実行しているのでしょうか。まあ簡単に想像はつきますが(エバるほどではない)、これが1点目です。もう1点は

  • monoweb.info - このウェブサイトは販売用です! - monoweb リソースおよび情報

    このウェブサイトは販売用です! monoweb.info は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、monoweb.infoが全てとなります。あなたがお探しの内容が見つかることを願っています!

  • はてなまとめ(仮)

    はてなまとめ(仮)は2012年10月1日に終了しました 2012年8月31日にお知らせさせていただいた通り、「はてなまとめ(仮)」を2012年10月1日に、終了させていただきました。ご愛顧ありがとうございました。 既存まとめの編集や、ポケットは機能を停止させていただきました。これまでユーザー様に作成していただいたまとめは、以下の「まとめ一覧」から閲覧できます。 はてなは、これからも既存サービスの一層の発展と、新しいサービスの成長に、全力を尽くしてまいります。今後もはてなをよろしくお願いいたします。

  • pow.cx

    This domain may be for sale!

  • 第25回 Rackとは何か(3)ミドルウェアのすすめ | gihyo.jp

    前回、前々回の記事では、Rackの生まれた背景、Rackとは何か、実際にRackアプリケーションを作る際に使えるものをご紹介しましたが、もう一つまだ説明していない重要な要素がRackにはあります。今回は、そのミドルウェアという仕組みについてご紹介します。 ミドルウェアとは ミドルウェアとは何かを一言で言うと、「⁠別なアプリケーションをラップして、リクエストやレスポンスを加工したり、処理を切り換えたりするRackアプリケーション」です。 この仕組みがあることで一体何ができるのでしょうか。Webアプリケーションを作っていると、リクエストやレスポンスをアプリケーションに行く前やアプリケーションの処理の後に加工したくなることはよくあります。例えば、条件に応じてURLの書き換えをしたり、エンコーディングの変換をしたり、Cookieの処理をしたり…といったことが日常茶飯事です。こういう処理を、サーバと

    第25回 Rackとは何か(3)ミドルウェアのすすめ | gihyo.jp
  • 第24回 Rackとは何か(2)Rackの使い方 | gihyo.jp

    前回の記事では、Rackとは何かについてを、Rackが生まれた背景を交えてご紹介しました。今回は、Rackを実際に使ってみるにはどうすればいいのかを実際に作りながら解説します。 rackupとRack::Builder 前回の記事の最後で、アプリケーションの他にconfig.ruというファイルを用意し、rackupといういうコマンドを使ってアプリケーションを起動しましたが、これについてもう少し詳しく説明したいと思います。 実は、単にRackアプリケーションを起動するためだけであれば、config.ru(rackupファイルと呼びます。拡張子のruはおそらくrackupの略でしょう)は必要ありません。Rackの入門記事等で目にしたことのある方もいるかもしれませんが、以下のようなコードをファイルの末尾に書き加えるとsimple_app.rb単体でアプリケーションを起動することができます。 if

    第24回 Rackとは何か(2)Rackの使い方 | gihyo.jp
  • 第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp

    はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて

    第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp
  • Rack解説を試みて失敗しつつも晒す、の巻 - KoshigoeBLOG

    Rackとは、Rubyで実装したアプリケーションとウェブサーバとを繋ぐインターフェースです。Rackプロトコルに従って実装したアプリケーションは、利用するウェブサーバを自由に選択する事が可能となります。 Rackの開発元へは、以下のリンクから。 Rack: a Ruby Webserver Interface Rackプロトコルについて、簡単に説明します。 Rackプロトコルに従ったアプリケーションとは、環境変数envを引数にとるメソッドcallを持つRubyオブジェクト(インスタンス)を意味します。callは、3つの要素を持つArrayオブジェクトを返します。これは順に、『HTTPステータスコード』『HTTPレスポンスヘッダ』『HTTPボディ』となります。 環境変数 アプリケーションは、環境変数を読み書きする事で、入出力操作等を行える様になります。環境変数は、いわゆるCGI環境変数や、R

  • Route 477

    GitHubindexHello source: index.md View on github | Report issue Generated by middleman 3.1.6. Powered by Ruby 2.2.2.

  • 1