forked from mojolicious/mojo
-
Notifications
You must be signed in to change notification settings - Fork 1
Mojolicious: Perl Duct Tape For The HTML5 Web!
License
lefedor/mojo
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Back in the early days of the web there was this wonderful Perl library called
CGI, many people only learned Perl because of it.
It was simple enough to get started without knowing much about the language
and powerful enough to keep you going, learning by doing was much fun.
While most of the techniques used are outdated now, the idea behind it is
not.
Mojolicious is a new attempt at implementing this idea using state of the art
technology.
Features:
* An amazing MVC web framework supporting a simplified single file mode
through Mojolicious::Lite.
* Very clean, portable and Object Oriented pure Perl API without any
hidden magic and no requirements besides Perl 5.8.1.
* Full stack HTTP 1.1 and WebSocket client/server implementation with
IPv6, TLS, IDNA, pipelining, chunking and multipart support.
* Builtin async IO and prefork web server supporting epoll, kqueue, hot
deployment and UNIX domain socket sharing, perfect for embedding.
* CGI, FastCGI and PSGI support.
* Fresh code, based upon years of experience developing Catalyst.
* Powerful out of the box with RESTful routes, plugins, sessions, signed
cookies, static file server, testing framework, Perl-ish templates,
JSON, I18N, first class Unicode support and much more for you to
discover!
Duct Tape For The HTML5 Web:
Web development for humans, making hard things possible and everything
fun.
use Mojolicious::Lite;
get '/hello' => sub { shift->render_text('Hello World!') }
get '/time' => 'clock';
websocket '/echo' => sub {
my $self = shift;
$self->receive_message(
sub {
my ($self, $message) = @_;
$self->send_message("echo: $message");
}
);
};
get '/fetch' => sub {
my $self = shift;
$self->render_data(
$self->client->get('http://mojolicious.org')->res->body);
};
post '/:name' => sub {
my $self = shift;
my $name = $self->param('name') || 'Mojo';
$self->render_text("Hello $name!");
};
app->start;
__DATA__
@@ clock.html.ep
% my ($second, $minute, $hour) = (localtime(time))[0, 1, 2];
The time is <%= $hour %>:<%= $minute %>:<%= $second %>.
For more user friendly documentation see "perldoc Mojolicious::Guides"
and "perldoc Mojolicious::Lite".
The Cake:
.---------------------------------------------------------------.
| Fun! |
'---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| .----------------------------------------------'
| | .--------------------------------------------.
| Application | | Mojolicious::Lite |
| | '--------------------------------------------'
| | .--------------------------------------------.
| | | Mojolicious |
'----------------' '--------------------------------------------'
.---------------------------------------------------------------.
| Mojo |
'---------------------------------------------------------------'
.-------. .-----------. .--------. .------------. .-------------.
| CGI | | FastCGI | | PSGI | | HTTP 1.1 | | WebSocket |
'-------' '-----------' '--------' '------------' '-------------'
To install this module type the following:
perl Makefile.PL
make
make test
make install
About
Mojolicious: Perl Duct Tape For The HTML5 Web!
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Perl 100.0%