61 个版本
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 日 |
在 #web-dev 排名 30
每月下载 228 次
在 4 个crate中使用(通过perseus)
49KB
743 行
Perseus
Perseus 是一个由 Rust 构建,支持在构建时、请求时或增量生成页面状态的快速前端网页开发框架!它支持使用 Sycamore 实现响应性,并在此基础上提供一个完整的框架,用于开发现代应用。
- 📕 支持静态生成(仅提供静态资源服务)
- 🗼 支持服务器端渲染(提供动态资源服务)
- 🔧 支持时间和/或自定义逻辑后的重新验证(更新渲染的页面)
- 🛠️ 支持增量再生(按需构建)
- 🏭 开放构建矩阵(使用任何渲染策略与任何其他东西)
- 🖥️ CLI 工具包,让您轻松构建应用程序
- 🌐 开箱即用的完整 i18n 支持,通过 Fluent
- 🏎 桌面 100 分,移动端超过 95 分的 Lighthouse 分数
- ⚡ 支持热状态重新加载(在开发过程中对任何代码进行更改后,重新加载您整个应用程序的状态,据我们所知,Perseus 是世界上唯一能够做到这一点的框架)
它是什么样的?
这是 Perseus 的一瞥(更多请参阅 这个 微型 示例)
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和出色的开发体验高效创建超级快速应用的能力!
动机
前端开发中缺乏支持除SPA和客户端渲染之外更多功能的Rust框架,因此Perseus诞生了。我们需要类似NextJS的Wasm。但为什么只到这里呢?
贡献
我们感谢所有类型的贡献,有关更多信息,请查看我们的贡献指南!此外,请务必遵守我们的行为准则。
您还可以在我们的Sycamore的Discord服务器频道上讨论Perseus。
没有这些辛勤工作的人,Perseus就不会成为可能!
许可
请参阅LICENSE
。
依赖项
约2MB
约43K SLoC