Página 1 de 1

Ha salido la versión 1.0 del framework web Mojolicious

NotaPublicado: 2010-12-26 12:50 @576
por explorer
Una nueva generación de entorno de trabajo web para el lenguaje de programación Perl.

Recordando, en los primeros días de la web, había una maravillosa colección de programas Perl llamados CGI, muchas personas aprendieron Perl solo por ellos. Era lo suficientemente simple para empezar sin conocer mucho del lenguaje, y suficientemente poderoso como para seguir desarrollando, aprendiendo mientras se programaba, era algo muy divertido. Ahora, mientras la mayor parte de las técnicas utilizadas están obsoletas, la idea que estaba detrás de ellas, no. Mojolicious es un nuevo intento de implementar esta idea usando la tecnología más avanzada.

Características:

* Un fantástico entorno de trabajo web MVC soportando un único y simplificado modo de trabajo con ficheros a través de Mojolicious::Lite. Incluyendo algunos poderes, como las rutas RESTful, complementos, plantillas al estilo Perl, gestión de sesiones, galletas firmadas, comprobaciones del entorno de trabajo, servidor de ficheros estáticos, I18N, soporte Unicode de primera clase y mucho más, para que lo descubras.

* Muy limpio, portátil y una API de programación orientada a objetos en puro Perl, sin ninguna magia escondida y sin requerimientos, más allá de tener un Perl v5.8.7.

* Pila completa del HTTP 1.1 e implementación cliente/servidor WebSocket con TLS, Bonjour, IDNA, Comet (sondeo largo), y soporte de fragmentación y multipartes.

* Un servidor web asíncrono incluido, soportando epoll, kqueue, sockets UNIX y despliegue en caliente, perfecto para los sistemas incrustados.

* Detección automática de CGI, FastCGI y PSGI (Perl Web Server Gateway Interface).

* Soporte de JSON y analizadores XML/HTML5 con selectores CSS3.

* Código fresco basado en años de experiencia desarrollando Catalyst.

Web principal
Mojolicious (CPAN)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Mojolicious::Lite;
  2.  
  3. # Simple route with plain text response
  4. get '/hello' => sub { shift->render(text => 'Hello World!') };
  5.  
  6. # Route to template in DATA section
  7. get '/time' => 'clock';
  8.  
  9. # RESTful web service sending JSON responses
  10. get '/:offset' => sub {
  11.     my $self   = shift;
  12.     my $offset = $self->param('offset') || 23;
  13.     $self->render(json => {list => [0 .. $offset]});
  14. };
  15.  
  16. # Scrape information from remote sites
  17. post '/title' => sub {
  18.     my $self = shift;
  19.     my $url  = $self->param('url') || 'http://mojolicio.us';
  20.     $self->render(text =>
  21.           $self->client->get($url)->res->dom->at('head > title')->text);
  22. };
  23.  
  24. # WebSocket echo service
  25. websocket '/echo' => sub {
  26.     my $self = shift;
  27.     $self->on_message(
  28.         sub {
  29.             my ($self, $message) = @_;
  30.             $self->send_message("echo: $message");
  31.         }
  32.     );
  33. };
  34.  
  35. app->start;
  36. __DATA__
  37.  
  38. @@ clock.html.ep
  39. % my ($second, $minute, $hour) = (localtime(time))[0, 1, 2];
  40. <%= link_to clock => begin %>
  41.     The time is <%= $hour %>:<%= $minute %>:<%= $second %>.
  42. <% end %>
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Instalación
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
curl -L cpanmin.us | perl - http://latest.mojolicio.us
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4