:sparkles: Mojolicious - Perl real-time web framework
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 5 年前 | ||
| 1 个月前 | ||
| 10 年前 | ||
| 5 年前 | ||
| 6 年前 | ||
| 1 个月前 | ||
| 13 年前 | ||
| 8 年前 | ||
| 8 个月前 | ||
| 1 年前 |
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
Mojolicious 为 Perl 网络开发带来了全新的视角,它基于多年构建 Catalyst 框架的经验,并利用了最新的网络标准和技术。您可以迅速启动项目,随着需求的增长,框架也会相应扩展。
Mojo 堆栈提供了一套一致的组件,可用于任何项目。指南涵盖了使用该框架的大部分内容,组件还提供了详尽的参考文档。Mojolicious 是一个实时网络框架,支持使用 WebSockets 构建不需要阻塞即可长运行请求的新一代网络应用。
现在加入我们,成为充满热情和知识开发者社区的一员!
特性
- CPAN 上最受欢迎的分发版。
- 一款卓越的实时网络框架,让您轻松将单个文件原型扩展为结构良好的 MVC 网络应用。
- 提供构建云原生网络应用所需的一切,适用于最先进的容器环境。
- 开箱即用,功能强大,包括 RESTful 路由、插件、命令、Perl 风格模板、内容协商、会话管理、表单验证、测试框架、静态文件服务器、CGI/PSGI 检测、一流的 Unicode 支持等众多功能供您探索。
- 一套强大的网络开发工具包,适用于各类应用,不依赖于任何网络框架。
- 支持全栈 HTTP 和 WebSocket 客户端/服务器实现,包括 IPv6、TLS、SNI、IDNA、HTTP/SOCKS5 代理、UNIX 域套接字、Comet(长轮询)、服务器发送事件(SSE)、Promises/A+、async/await、持久连接、连接池、超时、cookies、多部分以及 gzip 压缩支持。
- 内置非阻塞 I/O 网络服务器,支持多种事件循环以及可选的预派生和热部署,非常适合构建高度可扩展的网络服务。
- 支持 CSS 选择器的 JSON 和 HTML/XML 解析器。
- 非常清晰、可移植且面向对象的纯 Perl API,无隐藏魔法,除 Perl 5.26.0 以外无其他依赖(也可以使用低至 5.16.0 的版本,但可能需要安装额外的 CPAN 模块)
- 也提供 JavaScript 版本。
- 基于多年开发 Catalyst 经验的全新代码,免费且开源。
- 数百个第三方 扩展 和高质量衍生项目,如 Minion 任务队列。
- 一款卓越的实时网络框架,让您轻松将单个文件原型扩展为结构良好的 MVC 网络应用。
安装
您只需一行代码,不到一分钟即可完成。
$ curl -L https://cpanmin.us | perl - -M https://cpan.metacpan.org -n Mojolicious
我们建议使用 Perlbrew 环境。
快速入门
这三行代码就是一个完整的网络应用。
use Mojolicious::Lite;
get '/' => {text => 'I ♥ Mojolicious!'};
app->start;
要使用内置的开发Web服务器运行示例,只需将代码放入一个文件中,然后使用 morbo 启动它。
$ morbo hello.pl
Web应用可通过 http://127.0.0.1:3000 访问
使用您偏好的任何HTTP客户端进行测试。
$ curl http://127.0.0.1:3000/
I ♥ Mojolicious!
HTML5网络的万能胶带
在如下的精美单一文件原型中,使用最新的Perl和HTML特性,并且可以轻松地扩展成为结构良好的 模型-视图-控制器 (Model-View-Controller) Web应用。
use Mojolicious::Lite -signatures;
# Render template "index.html.ep" from the DATA section
get '/' => sub ($c) {
$c->render(template => 'index');
};
# WebSocket service used by the template to extract the title from a website
websocket '/title' => sub ($c) {
$c->on(message => sub ($c, $msg) {
my $title = $c->ua->get($msg)->result->dom->at('title')->text;
$c->send($title);
});
};
app->start;
__DATA__
@@ index.html.ep
% my $url = url_for 'title';
<script>
const ws = new WebSocket('<%= $url->to_abs %>');
ws.onmessage = function (event) { document.body.innerHTML += event.data };
ws.onopen = function (event) { ws.send('https://mojolicious.org') };
</script>
想了解更多?
查阅我们的优秀文档吧!
项目介绍
闪耀的宝石:Mojolicious —— Perl 实时网络框架【此简介由AI生成】
Artistic-2.0 Perl12.99 K提交数cloud-nativeevent-loophtmlhttpjsonmojoliciousmvcperluser-agentweb-frameworkweb-serverwebsocket
定制我的领域