66 个版本
0.4.2 | 2023 年 5 月 18 日 |
---|---|
0.4.0 | 2023 年 4 月 9 日 |
0.4.0-beta.22 | 2023 年 3 月 12 日 |
0.4.0-beta.11 | 2022 年 11 月 6 日 |
0.3.0-beta.18 | 2021 年 11 月 28 日 |
#187 in Web 编程
每月 207 次下载
在 8 crates 中使用
785KB
11K SLoC
Perseus
Perseus 是一个由 Rust 编写的快速前端网页开发框架,支持在构建时、请求时、增量式或您希望的方式生成页面状态!它支持使用 Sycamore 进行反应性,并在此基础上提供了一个用于开发现代应用的完整框架。
- 📕 支持静态生成(仅提供静态资源)
- 🗼 支持服务器端渲染(提供动态资源)
- 🔧 支持时间和/或自定义逻辑后的重新验证(更新渲染的页面)
- 🛠️ 支持增量再生(按需构建)
- 🏭 开放构建矩阵(使用任何渲染策略与其他任何内容一起使用)
- 🖥️ CLI 工具,让您轻松构建应用程序并充满信心
- 🌐 内置对 Fluent 的完全支持
- 🏎 桌面和超过 95% 移动端的 Lighthouse 评分均为 100
- ⚡ 支持开发中任何代码更改后的热状态重新加载(重新加载您整个应用程序的状态,据我们所知,Perseus 是世界上唯一能够做到这一点的框架)
它是什么样的?
以下是对 Perseus 的简要介绍(更多信息请参见 “tiny” 示例)
use perseus::prelude::*;
use sycamore::prelude::*;
#[perseus::main(perseus_axum::dflt_server)]
pub fn main<G: Html>() -> PerseusApp<G> {
PerseusApp::new()
.template(
Template::build("index")
.view(|cx| {
view! { cx,
p { "Hello World!" }
}
})
.build()
)
}
查看 该书籍 了解如何将其转换为您的下一个应用程序!
快速入门
如果您想立即开始使用 Perseus,运行以下命令,您将很快拥有一个基本的应用程序!(或者更准确地说,在 Cargo 编译完所有内容之后...)
cargo install perseus-cli
perseus new my-app
cd my-app/
perseus serve -w
然后,跳转到 https://127.0.0.1:8080 并查看一个占位符应用程序,它展示了所有的辉煌!如果你更改了一些代码,它会自动更新,浏览器会自行重新加载。(不过,重建可能需要一段时间,请参阅这里了解如何加快速度。)
目标
支持所有主要的渲染策略,并为开发者提供使用 Rust 和出色的开发者体验高效创建超级快应用的工具!
动机
目前缺少支持除单页面应用和客户端渲染之外的前端开发 Rust 框架,因此诞生了 Perseus。我们需要类似 NextJS 的 Wasm。但为什么要止步于此呢?
贡献
我们感激所有类型的贡献,请查看我们的贡献指南以获取更多信息!此外,请确保遵循我们的行为准则。
你还可以在我们的Sycamore Discord 服务器频道上讨论 Perseus。
没有这些辛勤工作的人,Perseus 就不可能实现!
许可证
请参阅LICENSE
。
依赖项
~11–17MB
~319K SLoC