Ruby用の高性能HTTPサーバー
require 'agoo'
Agoo :: Server . init ( 6464 , './root' )
class MyHandler
def call ( req )
[ 200 , { } , [ "hello world" ] ]
end
end
handler = MyHandler . new
Agoo :: Server . handle ( :GET , "/hello" , handler )
Agoo :: Server . start ( )
# To run this example type the following then go to a browser and enter a URL
# of localhost:6464/hello.
#
# ruby hello.rb require 'agoo'
class Query
def hello
'hello'
end
end
class Schema
attr_reader :query
def initialize
@query = Query . new ( )
end
end
Agoo :: Server . init ( 6464 , './root' , thread_count : 1 , graphql : '/graphql' )
Agoo :: Server . start ( )
Agoo :: GraphQL . schema ( Schema . new ) {
Agoo :: GraphQL . load ( %^type Query { hello: String }^ )
}
sleep
# To run this GraphQL example type the following then go to a browser and enter
# a URL of localhost:6464/graphql?query={hello}
#
# ruby hello.rb gem install agoo
AGOOはラック互換アプリをサポートしているため、Railsアプリケーションに使用できます。
gemfileにagooを追加します:
# Gemfile
gem 'agoo'
バンドルのインストール:
$ bundle install
サーバーとしてAGOOでレールを起動します:
$ rails server -u agoo
パフォーマンスの向上をお楽しみください!
Agooは空飛ぶ魚の一種の日本語です。この宝石は飛びます。これは、毎秒数十万のフェッチで静的リソースを提供する高性能HTTPサーバーです。デスクトップコンピューターで1秒あたり100,000を超えるリクエストのシンプルなHello World Rubyハンドラー。 Agooは、Sinatraよりも約85倍速く、Railsよりも1000倍速くなります。どちらの場合も、遅延は2桁低くなりました。ベンチマークをチェックアウトします。
Agooは、HanamiやRailsなどのラック互換の宝石を使用できるRuby Rack APIをサポートしています。 AgooはWebSocketsとSSEもサポートしています。
AgooはWindowsでは利用できません。
いくつかの例は、 exampleディレクトリにあります。 AGOOの使用例を介した他の文書化されたウォークは、 miscディレクトリにあります。これらの例は、Markdownファイルで説明されています。曲の例のようなものもありますが、接着剤のような他のものはより複雑です。例を通る文書化されたウォークは次のとおりです。
バージョン2.11.0は、GraphQLサブスクリプションをサポートしています。 TLS(SSL、HTTPS)サポートが追加されました。両方の例。関連するには、GraphQLベンチマークリポジトリがベンチマークに与えられました。
AGOOには、シンプルで使いやすいAPIを備えた新しいGraphQLモジュールがあります。こんにちはまたは歌の例をチェックアウトします。 Rubyを使用したGraphQLのインストルメンタルイントロは、散歩です。
Agooは、Webフレームワークスのベンチマークで最高のスループットとして1位になります。レイテンシは最上位ではなく、リリース2.5.2がそれを改善しました。 AGOO-Cベンチマークは上部にあります。すべての言語で最速のWebサーバー。
クラスター化されたAgooの準備ができました。より遅いアプリケーションと複数のコアを持つマシンの場合、パフォーマンスが大幅に改善されています。労働者間でデータが共有されないという点で、アプリケーションは無国籍でなければなりません。
WebSocketとSSEがサポートされており、PRがラック仕様を更新するために提出されました。提案されているラックエクステンションにアクセスして、気に入ったら、見て、親指や心を見せてください。
Agooは現在、デフォルトのPUMAの8000倍以上速いRails静的資産にサービスを提供しています。それが正しい、8000倍速い。
ファイルを参照:changelog.md
リリースはマスターブランチから作られています。チェックアウトのデフォルトのブランチは、開発ブランチです。 Pull Requestは、開発ブランチに対して行う必要があります。
TideliftサブスクリプションでサポートされているAgooを取得します。セキュリティの更新がサポートされています。
ドキュメント:http://rubydoc.info/gems/agooまたはhttp://www.ohler.com/agoo/doc/index.html
Github Repo :https://github.com/ohler55/agoo
rubygemsレポ:https://rubygems.org/gems/agoo
Wabur Repo :https://github.com/ohler55/waburにはagooを使用するオプションがあります
Perfer Repo :https://github.com/ohler55/perfer