A next generation web framework for the Perl programming language; duct
tape for the HTML5 web.
An amazing real-time web framework, allowing you to easily grow single file
prototypes into well-structured web applications.
Powerful out of the box with RESTful routes, plugins, commands, Perl-ish
templates, content negotiation, session management, form validation, testing
framework, static file server, CGI/PSGI detection, first class Unicode support
and much more for you to discover.
Full stack HTTP and WebSocket client/server implementation with IPv6, TLS, SNI,
IDNA, HTTP/SOCKS5 proxy, Comet (long polling), keep-alive, connection pooling,
timeout, cookie, multipart and gzip compression support.
Built-in non-blocking I/O web server, supporting multiple event loops as well
as optional preforking and hot deployment, perfect for building highly scalable
web services.
JSON and HTML/XML parser with CSS selector support.
===> The following configuration options are available for p5-Mojolicious-9.50:
EV=on: High-performance event loop via p5-EV
JSONXS=off: High-performance JSON parsing via p5-Cpanel-JSON-XS
TLS=on: Secure network connection support via TLS
===> Use 'make config' to modify these settings
Update Mojolicious to 8.0.
* Code name "Supervillain", this is a major release.
* Changed query method in Mojo::URL to merge with hash references and append
with
array references instead of the other way around. Because appended pairs
should
be able to preserve order.
* Changed template attribute in Mojolicious::Command to acivate vars by default.
* Removed test command.
* Removed deprecated expect_close attribute from Mojo::Content.
* Removed deprecated error and finish events from Mojo::IOLoop::Delay.
* Removed experimental status from server_timing method in Mojo::Headers.
* Removed experimental status from tag_to_html function in Mojo::DOM::HTML.
* Removed experimental status from tag method in Mojo::DOM::HTML.
* Removed experimental status from bytes_read and bytes_written methods in
Mojo::IOLoop::Stream.
(Only the first 15 lines of the commit message are shown above )
Update Mojolicious to 7.92
This release reverts the addition of stream classes (added in 7.83), which
have
unfortunately resulted in many Mojolicious applications becoming unstable.
While there are no known exploits yet, we've chosen to err on the side of
cautiousness and will classify this as a security issue.
MFH: 2018Q3
Update Mojolicious to 7.87
Add a JSONXS option to support Cpanel JSON::XS as a backend for Mojo::JSON
(new in this version). Also, remove IPV6 option that hasn't done anything
since r442724 (in case anyone's playing along at home, sunpoet gets that hat).
Update Mojolicious to 7.68
- Fixed RFC 7230 compliance bugs in Mojo::Message::Request that prevented
"GET //foo/bar HTTP/1.1" to be interpreted as a request target in origin
form.
Update Mojolicious to 7.67
- Modernized ".perltidyrc".
- Fixed a bug in Mojo::Asset::File where forked processes could delete
temporary files prematurely.
Update Mojolicious to 7.66
- This release contains fixes for security issues, everybody should upgrade!
- Removed origin attribute of Mojo::Cookie::Response.
- Removed deprecated data and remaining methods from Mojo::IOLoop::Delay.
- Added host_only attribute to Mojo::Cookie::Response.
- Improved all method in Mojo::Promise to resolve with no results if no
promises have been passed.
- Fixed a bug in Mojo::UserAgent::CookieJar where old cookies could be leaked.
(exp-innit, sri)
MFH: 2018Q1 (along with every update since the branch point)
Security: https://github.com/kraih/mojo/issues/1185
Update Mojolicious to 7.65
7.65 2018-02-11
- Added EXPERIMENTAL timing->begin, timing->elapsed, timing->rps and
timing->server_timing helpers to Mojolicious::Plugin::DefaultHelpers.
- Added EXPERIMENTAL server_timing method to Mojo::Headers.
- Added support for new HTTP status code.
7.64 2018-02-07
- Fixed a bug in Mojo::Log where short log messages spanning multiple lines
would not be formatted properly for systemd.
7.63 2018-02-06
- Improved Mojo::Log to use native systemd log levels.
Update Mojolicious to 7.62
- Added -u option to get command. (jberger)
- Added dont_use_nlink option to list_tree method in Mojo::File.
- Added reverse proxy section to Mojolicious::Guides::Cookbook. (polettix)
- Fixed a promise resolution bug in Mojo::Promise.
Update Mojolicious to 7.60
- Deprecated use of Mojo::Promise::all and Mojo::Promise::race as instance
methods.
- Improved all and race methods in Mojo::Promise to be able to handle
arbitrary then-ables.
- Improved number detection in Mojo::JSON with a workaround for an upcoming
breaking change in Perl 5.28. (haarg)
- Improved HTML Living Standard compliance of Mojo::DOM::HTML.
- Fixed a bug in Mojo::Base that prevented composition of multiple roles.
(aferreira, batman)
- Fixed a bug in Mojolicious::Static where text files from DATA sections would
not be UTF-8 encoded. (Grinnz)
Update to 7.59
- Moved home and ua attributes from Mojo to Mojolicious.
- Changed Mojo::IOLoop::Client to only start a thread pool with
Net::DNS::Native on demand. (Grinnz)
- Improved subprocess method in Mojo::IOLoop to allow for easier role
composition.
- Fixed RFC 7230 compliance bug in Mojo::Message::Response. (jberger)
Update to 7.58
7.58 2017-12-02
- Added websocket_p method to Mojo::UserAgent.
7.57 2017-11-18
- Fixed installation problems with some versions of Perl on Windows.
Update to 7.55
- Added -role flag to Mojo::Base. (jberger)
- Improved tablify function in Mojo::Util to work with non-rectangular arrays.
(CandyAngel, jabberwok)
- Improved Windows compatibility of Mojo::Server::Daemon.
Update to 7.51
- Added -signatures flag to Mojo::Base and Mojolicious::Lite.
- Added support for new HTTP status code.
- Improved ojo to enable subroutine signatures automatically on Perl 5.20+.
Update to 7.50.
7.50 2017-10-30
- Deprecated error and finish events in Mojo::IOLoop::Delay. Since there is no
good way to warn our users about this deprecation, it will be in effect
until the next major release. Where we will also change the base class from
Mojo::EventEmitter to Mojo::Base.
- Improved documentation browser with links to MetaCPAN.
7.49 2017-10-28
- Deprecated Mojo::IOLoop::Delay::data and Mojo::IOLoop::Delay::remaining.
- Added Promises/A+ support. Note that Mojo::IOLoop::Delay previously
inherited a catch method from Mojo::EventEmitter that was passed the error
message as second argument instead of the first, so you might have to change
$delay->catch(sub { my ($delay, $error) = @_; ... });
to
$delay->catch(sub { my ($error) = @_; ... });
- Added all, catch, finally, race and then methods to Mojo::IOLoop::Delay.
- Updated jQuery to version 3.2.1.
Update to 7.47
7.45 and 7.46 were skipped, as they had no impact on FreeBSD.
7.47 2017-10-05
- Added multipart content generator to Mojo::UserAgent::Transactor.
- Fixed a bug in Mojo::File where parts of a path could get accidentally
upgraded from bytes to characters.
7.46 2017-09-12
- Fixed support for versions of IO::Socket::SSL older than 1.965 again.
7.45 2017-09-06
- Fixed support for versions of IO::Socket::SSL older than 1.965. (mudler,
foursixnine, genio, sri)
Update to 7.44.
- Reverted a previous change to Mojo::Loader that allowed for load_class to be
called on the same class multiple times, since it had very bad side effects.
- Improved Mojo::IOLoop::TLS to use a little less memory.
- Fixed a bug where Mojolicious controllers like "MyApp::Controller::Foo::Bar"
would disappear if loading the controller "MyApp::Controller::Foo" was
attempted but failed.
Update to 7.40, add a new TEST_DEPENDS on Role::Tiny, and pet portlint.
- Added support for Role::Tiny extensions to all classes based on Mojo::Base.
(dotan)
- Added with_roles method to Mojo::Base. (dotan)
- Added the guide Mojolicious::Guides::Testing. (scottw)
- Replaced systemd detection in Mojo::Log with the MOJO_LOG_SHORT environment
variable, since there is no reliable way to detect systemd.
Update to 7.39.
- Removed experimental close_idle_connections method from
Mojo::Server::Daemon.
- Increased default graceful_timeout from 60 to 120 seconds in
Mojo::Server::Prefork.
- Improve Mojo::Server::Daemon to log request errors.
- Fixed a bug where Mojo::Server::Daemon would close connections too quickly
and interrupt requests.
Update to 7.38.
* Added extra attribute to Mojolicious::Static. (jabberwok)
* Improve Mojo::URL performance significantly.
* Fixed memory leak in Mojo::URL that was caused by a Perl 5.24 bug.
Update to 7.37.
* Added slugify method to Mojo::ByteStream. (Grinnz)
* Added slugify function to Mojo::Util. (Grinnz)
* Fixed bugs in Mojo::IOLoop and Mojo::Reactor::Poll that would prevent a
reset from clearing events.
Update to 7.36.
- Fixed basename method in Mojo::File to work with relative paths.
- Fixed a bug where Mojo::Log could not correctly identify if it was deployed
with systemd.
- Fixed Mojo::HelloWorld to actually be a Mojolicious subclass.
Update to 7.35.
- Removed deprecated watch attribute from Mojo::Server::Morbo.
- Added spare attribute to Mojo::Server::Prefork.
- Added -s option to prefork command.
- Added fd option to Mojo::IOLoop::Server::listen.
- Added fd parameter to Mojo::Server::Daemon::listen.
- Added spare setting to Hypnotoad.
- Increased default graceful_timeout from 20 to 60 seconds and
heartbeat_timeout from 20 to 30 seconds in Mojo::Server::Prefork.
Update to 7.34.
7.34 2017-07-02
- Added short attribute to Mojo::Log.
- Improved Mojo::Log to print log messages without timestamps to STDERR when
deployed with systemd.
- Improved Mojo::DOM performance slightly.
7.33 2017-06-05
- Added EXPERIMENTAL support for :matches pseudo-class and :not pseudo-class
with compound selectors to Mojo::DOM::CSS.
- Fixed a few form element value extraction bugs in Mojo::DOM.
- Fixed version command to use the new MetaCPAN API, since the old one got
shut down.
Update to 7.32.
- Added -f option to get command.
- Improved get command with support for passing request data by redirecting
STDIN.
- Fixed memory leak in Mojo::IOLoop::Client that sometimes prevented the
connect timeout from working correctly for TLS handshakes.
Update to 7.31.
* Removed deprecated files, slurp and spurt functions from Mojo::Util.
* Removed deprecated parts attribute from Mojo::Home.
* Removed deprecated slurp and spurt methods from Mojo::ByteStream.
* Removed deprecated lib_dir, list_files, parse and rel_dir methods
from Mojo::Home.
* Removed deprecated rel_dir method from Mojolicious::Command.
* Removed deprecated is_status_class method from Mojo::Message::Response.
* Fixed a bug in the app generator command where the config file name
was not based on the application moniker.
Update to 7.30.
- Deprecated Mojo::Server::Morbo::watch in favor of
Mojo::Server::Morbo::Backend::Poll::watch.
- Added support for pluggable Morbo backends.
- Added Mojo::Server::Morbo::Backend and Mojo::Server::Morbo::Backend::Poll
modules.
- Added backend attribute to Mojo::Server::Morbo.
- Added -b option to Morbo.
Update to 7.29.
- Added support for overriding configuration files in applications tested with
Test::Mojo.
- Added html_attr_unescape function to Mojo::Util.
- Fixed unescaping of HTML5 attribute values in Mojo::DOM::HTML.
Update to 7.28.
- Added copy_to, realpath and sibling methods to Mojo::File.
- Added dir option to list_tree method in Mojo::File.
- Improved app generator command to generate a config file.
Update to 7.27.
- Added support for UNIX domain sockets.
- Improved Mojo::UserAgent to complain about unsupported protocols.
- Fixed a bug in Mojo::URL where invalid host strings could be generated.
- Fixed blib handling in Mojo::Home.
Update to 7.24.
- Added open method to Mojo::File.
- Added tempfile function to Mojo::File.
- Fixed bug in Mojo::Asset::File where the slurp method would not work
correctly for very large files.
Update to 7.23.
- Added max_request_size attribute to Mojolicious.
- Added max_response_size attribute to Mojo::UserAgent.
- Added to_unsafe_string method to Mojo::URL.
- Added -S option to get command.
- Fixed a data corruption problem in Mojo::IOLoop::Stream, caused by a
dependency of IO::Socket::SSL on the internal representation of strings,
which differs from IO::Socket::IP.
Update to 7.22.
- Added ports method to Mojo::Server::Daemon.
- Added remove_tree method to Mojo::File.
- Improved spurt method in Mojo::File with support for writing multiple chunks
at once.
Update to 7.18.
- Fixed support for relative %INC paths in Mojo::Home.
- Fixed a bug in Mojo::URL where invalid fragment strings could be generated.
7.16 and 7.17 were Windows-specific releases.
Update to 7.15. Note that many functions are being deprecated in this release.
- Deprecated Mojo::ByteStream::slurp and Mojo::Util::slurp in favor of
Mojo::File::slurp.
- Deprecated Mojo::ByteStream::spurt and Mojo::Util::spurt in favor of
Mojo::File::spurt.
- Deprecated Mojo::Util::files in favor of Mojo::File::list_tree.
- Deprecated Mojo::Home::lib_dir, Mojo::Home::parse, Mojo::Home::parts in
favor of new features inherited from the Mojo::File base class.
- Added module Mojo::File.
- Improved Mojo::Home to be a subclass of Mojo::File.
- Improved mojo_lib_dir and rel_file methods in Mojo::Home to return
Mojo::Home objects.
- Improved rel_file methods in Mojolicious::Command to return Mojo::File
objects.
- Improved every_param and param methods in Mojolicious::Validator::Validation
to use the current topic.
Update to 7.14.
- Deprecated Mojo::Home::list_files in favor of Mojo::Util::files.
- Deprecated Mojo::Home::rel_dir in favor of Mojo::Home::rel_file.
- Deprecated Mojolicious::Command::rel_dir in favor of
Mojolicious::Command::rel_file.
- Fixed a bug in Mojo::IOLoop::Subprocess where the pipe used for IPC could
disappear because of a timeout.
Update to 7.13.
- Deprecated Mojo::Message::Response::is_status_class in favor of new is_*
methods.
- Added result method to Mojo::Transaction.
- Added is_client_error, is_error, is_info, is_redirect, is_server_error and
is_success methods to Mojo::Message::Response.
- Fixed bug where Morbo could not handle broken symlinks. (Grinnz)
Update to 7.12.
- Added button_to and csrf_button_to helpers to
Mojolicious::Plugin::TagHelpers.
- Removed experimental status from Mojo::IOLoop::Subprocess.
- Removed experimental status from subprocess method in Mojo::IOLoop.
Update to 7.11.
- Added EXPERIMENTAL close_idle_connections method to Mojo::Server::Daemon.
- Improved one_tick method in Mojo::IOLoop to protect from recursion, similar
to the start method.
- Improved log attribute in Mojolicious to make it easier to override default
settings. (jberger)
- Fixed bug in Mojo::Server::Prefork where workers would accept keep-alive
requests after a graceful shutdown had already been initiated.
- Fixed bugs in Mojo::Util and Mojo::Asset::File where incomplete writes would
not be recognized as errors. (bobkare, sri)
Update to 7.09.
- Added every_header method to Mojo::Headers.
- Fixed redirect bug in Mojo::UserAgent::Transactor.
- Fixed a few proxy bugs in Mojo::UserAgent.
Update to 7.08.
- Added -i and -o options to get command.
- Updated jQuery to version 3.1.1.
- Improved accuracy of finished_ok test in Test::Mojo.
- Fixed state transition bug in Mojo::Transaction::HTTP that caused message
bodies to be included in responses to HEAD requests.