Plack (software) - Plack (software)

Plack
Autor (es) original (is) Tatsuhiko Miyagawa
Desenvolvedor (s) Tatsuhiko Miyagawa, Tokuhiro Matsuno, Jesse Luehrs, Tomas Doran, Graham Knop e outros.
Escrito em Perl
Licença Licença Perl (Licença Artística v2 + GNU General Public License v1)
Local na rede Internet plackperl .org
Um exemplo de script do lado do servidor usando Perl, Plack e PSGI.

Plack é uma estrutura de programação de aplicativos da Web Perl inspirada em Rack para Ruby e WSGI para Python , e é o projeto por trás da especificação PSGI usada por outras estruturas, como Catalyst e Dancer . Plack permite o teste de aplicações web Perl sem um servidor web ativo.

Plackup é um utilitário de linha de comando para executar aplicativos PSGI a partir da linha de comando.

PSGI

PSGI ou Perl Web Server Gateway Interface é uma interface entre servidores web e aplicativos web e estruturas escritas na linguagem de programação Perl que permite escrever aplicações portáteis que podem ser executadas como servidores autônomos ou usando CGI , FastCGI , mod_perl , et al. Ele é inspirado na Web Server Gateway Interface para Python , Rack para Ruby e JSGI para JavaScript . Um aplicativo PSGI é uma sub-rotina Perl que aceita argumentos como uma única referência de hash e retorna uma referência a uma matriz de três elementos: um código de status HTTP , uma referência a uma matriz de cabeçalhos HTTP e uma referência a uma matriz de linhas do corpo HTTP ( geralmente um documento HTML gerado ) ou um objeto semelhante a filehandle .

Back-ends suportados

Em março de 2010, o Plack oferece suporte aos seguintes back-ends de servidor:

Exemplos

Usando o servidor HTTP autônomo padrão:

$ plackup app.psgi
HTTP::Server::PSGI: Accepting connections at http://0:5000/

Executando como um daemon FastCGI ouvindo em um soquete Unix , pronto para ser usado por qualquer servidor Web com suporte FastCGI :

$ plackup -s FCGI -listen /tmp/fcgi.sock app.psgi
FastCGI: manager (pid 3336): initialized
FastCGI: manager (pid 3336): server (pid 3337) started
FastCGI: server (pid 3337): initialized

Um aplicativo Hello World funcional executado como uma linha :

$ plackup -e 'sub { [200, ["Content-Type" => "text/plain"], ["Hello, world!"]] }'
HTTP::Server::PSGI: Accepting connections at http://0:5000/

O comando acima inicia um servidor HTTP escutando na porta 5000 de cada interface local ( endereço IP ) e retorna esta resposta 200 OK para cada solicitação HTTP :

HTTP/1.0 200 OK
Date: Fri, 19 Mar 2010 23:34:10 GMT
Server: HTTP::Server::PSGI
Content-Type: text/plain
Content-Length: 13

Hello, world!

Referências

links externos