It fills me with great joy to announce the release of Mojolicious 3.0 (Rainbow).
This marks the first major release for our newly formed core team, consisting of Glen Hinkle, Marcus Ramberg, Abhijit Menon-Sen and yours truly. A lot has happened during the last 8 months since our 2.0 release, most design decisions are now made by majority vote. The core feature set is not changing much anymore, and we are in the process of refocusing our efforts on making Mojolicious more approachable for beginners and easier to extend. The community is still growing fast, and we’ve just passed 666 watchers on GitHub, thanks everyone! :)
There are many new features, here are the highlights:
- TLS and IPv6: Support for both has been greatly improved.
- Commands: The command system has been completely revamped. (example)
- Plugins: Generator and CPAN upload commands make extending Mojolicious easier than ever. (example)
- Event loops: Mojolicious no longer needs to control the event loop. (example)
- Content negotiation: Write more RESTful web services. (example)
- JSON Pointers: Many features dealing with JSON got a lot smarter. (example)
- Flexible router: Routes can now be rearranged. (example)
- Flexible renderer: Serve templates and static files from as many DATA sections and paths as you like. (example)
- Asset plugins: Easily bundle assets such templates and static files with plugins. (example)
- Not found page: Is now actually a development tool.
- Hypnotoad: Doesn’t require a separate configuration file anymore. (example)
- WebSockets: Fully RFC 6455 compliant. (example)
- Relaxed placeholders: Now look like “/#foo” instead of “/(.foo)”. (example)
- I18N plugin: Maintained as a separate distribution from now on.
And as usual there is a lot more to discover, see Changes on GitHub for the full list of improvements.