Changes for version 4.0 - 2013-05-15

  • Code name "Top Hat", this is a major release.
  • Added simple JSON serialization and deserialization support to Mojo::Transaction::WebSocket.
  • Added json event to Mojo::Transaction::WebSocket.
  • Added render_maybe method to Mojolicious::Controller.
  • Added again method to Mojo::Reactor, Mojo::Reactor::Poll and Mojo::Reactor::EV.
  • Added is_empty method to Mojo::Transaction::HTTP.
  • Added close_gracefully method to Mojo::IOLoop::Stream.
  • Changed Mojolicious default secret to the application moniker to make it slightly more secure.
  • Changed types in Mojolicious::Types to consistently use arrays.
  • Changed heuristics for number detection in Mojo::JSON to better line up with user expectations.
  • Changed render and render_static methods in Mojolicious::Controller to call render_not_found if no response could be generated.
  • Removed callback support from body method in Mojo::Message.
  • Removed Mojolicious::Plugin::PoweredBy and Mojolicious::Plugin::RequestTimer.
  • Removed pair_separator attribute from Mojolicious::Parameters.
  • Removed data attribute from Mojo::URL.
  • Removed captures attribute from Mojolicious::Routes::Match.
  • Removed charset attribute from Mojo::DOM::HTML.
  • Removed charset method from Mojo::DOM.
  • Removed render_data, render_json, render_partial and render_text methods from Mojolicious::Controller.
  • Removed json_content_is method from Test::Mojo.
  • Removed has_leftovers method from Mojo::Content.
  • Removed is_chunked, is_dynamic, is_multipart, has_leftovers, leftovers, write and write_chunk methods from Mojo::Message.
  • Removed hmac_md5_sum method from Mojo::ByteStream.
  • Removed hmac_md5_sum function from Mojo::Util.
  • Removed memorize helper.
  • Removed deprecated end method from Mojo::IOLoop::Delay.
  • Removed deprecated build_form_tx, build_json_tx, post_form and post_json methods from Mojo::UserAgent.
  • Removed deprecated form and json methods from Mojo::UserAgent::Transactor.
  • Removed deprecated post_form_ok and post_json_ok methods from Test::Mojo.
  • Removed deprecated f and n functions from ojo.
  • Removed deprecated after_static_dispatch hook.
  • Renamed shape_match method in Mojolicious::Routes::Pattern to match_partial.
  • Reduced idle CPU usage of Mojo::IOLoop.
  • Increased default lock_timeout from 0.5 to 1 second in Mojo::Server::Prefork and Mojo::Server::Hypnotoad.
  • Improved Mojo::IOLoop performance significantly and reduced CPU usage when managing more than 10k concurrent connections.
  • Improved Mojolicious to be able to detect the current operating mode from the PLACK_ENV environment variable.
  • Improved Mojolicious to not trap exceptions if the default exception handling has been deactivated.
  • Improved json_is and json_message_is methods in Test::Mojo by making the JSON Pointer optional. (jberger)
  • Improved renderer performance.
  • Improved Mojo::DOM::HTML performance.
  • Improved Mojo::Reactor::Poll performance.
  • Improved html_unescape performance in Mojo::Util.
  • Improved Mojolicious::Plugin::EPLRenderer to cache templates more efficiently.
  • Improved documentation.
  • Improved tests.
  • Fixed Perl 5.17.11+ compatibility.
  • Fixed Mojo::JSON to encode "inf" and "nan" values as strings. (chansen)
  • Fixed a few authority and rendering bugs in Mojo::URL.
  • Fixed layout bugs in Mojolicious::Renderer.
  • Fixed support for HEAD request method in Mojo::Server::CGI and Mojo::Server::PSGI.
  • Fixed small line directive bug in Mojo::Template.
  • Fixed small limit bug in Mojo::Message.

Documentation

Mojolicious guide to the galaxy
Contributing to Mojolicious
Frequently Asked Questions
Hypnotoad HTTP and WebSocket server
The Mojolicious command system
Morbo HTTP and WebSocket development server

Modules

Duct tape for the HTML5 web!
HTTP content storage base class
File storage for HTTP content
In-memory storage for HTTP content
Minimal base class for Mojo projects
ByteStream
Naive in-memory cache
Collection
HTTP content base class
HTTP multipart content
HTTP content
HTTP cookie base class
HTTP request cookie
HTTP response cookie
Minimalistic HTML/XML DOM parser with CSS selectors
CSS selector engine
HTML/XML engine
HTTP date
Event emitter base class
Exceptions with context
Headers
Hello World!
Home sweet home!
Minimalistic event loop
Non-blocking TCP client
Manage callbacks and control the flow of events
Non-blocking TCP server
Non-blocking I/O stream
Minimalistic JSON
JSON Pointers
Loader
Simple logger
HTTP message base class
HTTP request
HTTP response
Parameters
Path
Low level event reactor base class
Low level event reactor with libev support
Low level event reactor with poll support
HTTP server base class
CGI server
Non-blocking I/O HTTP and WebSocket server
ALL GLORY TO THE HYPNOTOAD!
DOOOOOOOOOOOOOOOOOOM!
PSGI server
Preforking non-blocking I/O HTTP and WebSocket server
Perl-ish templates!
Transaction base class
HTTP transaction
WebSocket transaction
Uniform Resource Locator
Upload
Non-blocking I/O HTTP and WebSocket user agent
Cookie jar for HTTP user agents
User agent transactor
Portable utility functions
Real-time web framework
Command base class
Generator command
App generator command
Lite app generator command
Makefile generator command
Plugin generator command
Command line interface
Controller base class
Real-time micro web framework
Plugin base class
Perl-ish configuration plugin
Default helpers plugin
Embedded Perl Lite renderer plugin
Embedded Perl renderer plugin
Header condition plugin
JSON configuration plugin
Application mount plugin
POD renderer plugin
Tag helpers plugin
Plugin manager
Generate dynamic content
Always find your destination with routes!
Routes pattern engine
Signed cookie based session manager
Serve static files
MIME types
Testing Mojo!
ojo
Fun oneliners with Mojo!

Provides

in lib/Mojo/JSON.pm
in lib/Mojo/Server/PSGI.pm