Um servidor HTTP de alto desempenho para 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
Como a Agoo suporta aplicativos compatíveis com rack, você pode usá -lo para aplicativos Rails:
Adicione Agoo ao GemFile:
# Gemfile
gem 'agoo'
Instalar pacote:
$ bundle install
Inicie os trilhos com Agoo como servidor:
$ rails server -u agoo
Aproveite o aumento do desempenho!
Agoo é japonês para um tipo de peixe voador. Esta jóia voa. É um servidor HTTP de alto desempenho que serve recursos estáticos a centenas de milhares de buscas por segundo. Um manipulador de rubi do Hello World simples em mais de 100.000 solicitações por segundo em um computador de mesa. Isso coloca Agoo cerca de 85 vezes mais rápido que Sinatra e 1000 vezes mais rápido que os trilhos. Nos dois casos, a latência foi de duas ordens de magnitude mais baixa ou mais. Confira os benchmarks.
A Agoo suporta a API de rack rubi, que permite o uso de gemas compatíveis com rack, como Hanami e Rails. Agoo também suporta Websockets e SSE.
Agoo não está disponível no Windows.
Alguns exemplos podem ser encontrados no diretório example . Alguns outros campos documentados por exemplos de uso de Agoo estão no diretório misc . Esses exemplos são descritos nos arquivos de marcação. Alguns gostam do exemplo da música são simples, enquanto outros como a cola são mais complexos. Os exemplos de caminhada documentados são:
A versão 2.11.0 suporta assinaturas grafql. Suporte TLS (SSL, HTTPS) adicionado. Exemplos para ambos. RELACIONADO, o repositório do GraphQL-Benchmark foi dado ao benchmarker.
A Agoo possui um novo módulo GraphQL com uma API simples e fácil de usar. Confira os exemplos de hello ou música. Uma introdução instrumental ao GraphQL com Ruby é uma caminhada.
Agoo ocupa o primeiro lugar como a maior taxa de transferência nos benchmarks da Web-Frameworks. A latência não estava no topo, mas a versão 2.5.2 melhora isso. O Agoo-C o compara no topo. O servidor da web mais rápido em todos os idiomas.
Agoo agrupado está pronto. Para aplicação mais lenta e uma máquina com vários núcleos, é realizada uma melhoria significativa. O aplicativo deve estar sem estado, pois nenhum dado é compartilhado entre os trabalhadores.
WebSocket e SSE são suportados e um PR foi enviado para atualizar a especificação do rack. Vá até a extensão proposta de rack e dê uma olhada e um polegar para cima ou coração, se quiser.
A Agoo agora serve ativos estáticos do Rails mais de 8000 vezes mais rápido que o Puma padrão. Isso está certo, 8000 vezes mais rápido.
Consulte Arquivo: Changelog.md
Os lançamentos são feitos a partir do ramo mestre. A filial padrão para check -out é a filial de desenvolvimento. Solicitações de tração devem ser feitas contra a filial de desenvolvimento.
Obtenha a Agoo suportada com uma assinatura do Tidelift. As atualizações de segurança são suportadas.
Documentação : http://rubydoc.info/gems/agoo ou http://www.ohler.com/agoo/doc/index.html
Repo Github : https://github.com/ohler55/agoo
Rubygems repo : https://rubygems.org/gems/agoo
Repo Wabur : https://github.com/ohler55/wabur tem a opção de usar agoo
Repo Perfer : https://github.com/ohler55/perfer