Высокопроизводительный HTTP -сервер для Ruby
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:
Добавьте Agoo в Gemfile:
# Gemfile
gem 'agoo'
Установите пакет:
$ bundle install
Запустить рельсы с Agoo в качестве сервера:
$ rails server -u agoo
Наслаждайтесь повышенной производительностью!
Agoo - японский язык для летающей рыбы. Этот драгоценный камень летит. Это высокопроизводительный HTTP -сервер, который обслуживает статический ресурс в сотнях тысяч избранных в секунду. Простой обработчик Ruby Hello World составляет более 100 000 запросов в секунду на настольном компьютере. Это ставит Agoo примерно в 85 раз быстрее, чем Синатра и в 1000 раз быстрее, чем рельсы. В обоих случаях задержка была на два порядка ниже или более. Проверьте тесты.
Agoo поддерживает API Ruby Rack, который позволяет использовать совместимые с стойки драгоценных камней, такие как Ханами и рельсы. Agoo также поддерживает веб -питания и SSE.
Agoo недоступен в Windows.
Некоторые примеры можно найти в каталоге example . Некоторые другие задокументированные прохождения примеров использования Agoo находятся в каталоге misc . Эти примеры описаны в файлах разметки. Некоторым нравится пример песни просты, в то время как другие, такие как клей, более сложны. Задокументированные ходьбы через примеры:
Версия 2.11.0 поддерживает подписки GraphQL. Поддержка TLS (SSL, HTTPS) добавлена. Примеры для обоих. Связанный, репо Граф-Бенчмарк был отдан в скидку.
У Agoo есть новый модуль GraphQL с простым, простым в использовании API. Оформить примеры Hello или Song. Инструментальное вступление в GraphQL с Ruby - это прогулка.
Agoo занимает первое место в качестве самой высокой пропускной способности на тестах веб-фрамирования. Задержка была не наверху, но выпуск 2.5.2 улучшает это. Agoo-c сдерживает его наверху. Самый быстрый веб -сервер на всех языках.
Кластерное Agoo готова. Для более медленного применения и машины с несколькими ядрами значительно улучшается производительность. Приложение должно быть без сохранности в том, что между работниками не распространяются данные.
WebSocket и SSE поддерживаются, и PR был представлен для обновления спецификации стойки. Перейдите к предлагаемому расширению стойки и посмотрите на него и на большие пальцы или сердце, если вам это нравится.
Agoo теперь обслуживает статические активы Rails более чем в 8000 раз быстрее, чем PUMA по умолчанию. Это верно, в 8000 раз быстрее.
См. Файл: Changelog.md
Выпуски сделаны из главной ветви. Отделение по умолчанию для оформления заказа - это развить филиал. Запросы на вытягивание должны быть сделаны против развития филиала.
Получите поддержку Agoo с подпиской на TIDELIFT. Обновления безопасности поддерживаются.
Документация : http://rubydoc.info/gems/agoo или http://www.ohler.com/agoo/doc/index.html
Github Repo : https://github.com/ohler55/agoo
Rubygems Repo : https://rubygems.org/gems/agoo
Wabur Repo : https://github.com/ohler55/wabur имеет возможность использовать Agoo
Perfer Repo : https://github.com/ohler55/perfer