#web-apps #reactive #gui

sycamore

一个用于在 Rust 和 WebAssembly 中构建反应式网页应用的库

23 个版本

0.9.0-beta.22023年10月6日
0.9.0-beta.12023年3月26日
0.8.2 2022年9月24日
0.8.0-beta.72022年6月26日
0.5.2 2021年7月18日

600网页编程 中排名

Download history 488/week @ 2024-04-20 472/week @ 2024-04-27 371/week @ 2024-05-04 370/week @ 2024-05-11 399/week @ 2024-05-18 428/week @ 2024-05-25 486/week @ 2024-06-01 286/week @ 2024-06-08 396/week @ 2024-06-15 393/week @ 2024-06-22 209/week @ 2024-06-29 144/week @ 2024-07-06 355/week @ 2024-07-13 329/week @ 2024-07-20 290/week @ 2024-07-27 255/week @ 2024-08-03

1,238 每月下载量
25 库中使用 (17 个直接使用)

MIT 许可证

300KB
5.5K SLoC

Sycamore

Crates.io docs.rs GitHub contributors Discord

Sycamore 是一个用于在 RustWebAssembly 中创建网页应用的 反应式 库。

#[component]
fn Hello<G: Html>() -> View<G> {
    view! { 
        p { "Hello World!" }
    }
}
  • 闪电速度:Sycamore 通过 RustWebAssembly 实现了强大的性能。
  • 易于使用和直观:编写自然的代码。所有内容都是基于 反应式原语 构建,无需复杂的虚拟 DOM。
  • 无 JavaScript:厌倦了 JavaScript?我们也一样。使用 Sycamore 创建应用,无需编写一行 JS。

文档

Sycamore 有详细的文档

  • 入门:如何编写第一个 Sycamore 应用。
  • 反应式:了解如何使用 Sycamore 强大的反应式原语。
  • API 文档:rustdocs 的 sycamore 包。

还有疑问? 不要犹豫,随时访问我们友好的 Discord 服务器

示例

Sycamore 在 examples/ 目录中提供了许多示例。务必查看它们!

sycamore-rs.netlify.app 上查看

所有示例均托管在 sycamore-rs.netlify.app/examples/<example_name> 下,其中 <example_name> 是您想要查看的示例名称。例如,todomvc 示例托管在 sycamore-rs.netlify.app/examples/todomvc

本地构建

所有示例也可以使用 Trunk 在本地构建。例如,以下命令构建并托管了 todomvc 示例

cd examples/todomvc
trunk serve

现在在您的浏览器中打开 localhost:8080 以查看 "Hello World!"。

Perseus

Perseus 是一个使用 Sycamore 构建的 Fullstack 框架。想象一下 NextJSSvelteKit,但没有 JavaScript。从后端到前端的一切都是用纯 Rust 构建!

替代方案?

认为 Sycamore 不适合您?幸运的是,有很多替代方案!

  • SolidJS:用于构建用户界面的声明性、高效和灵活的 JavaScript 库
    Solid 是一个受 Sycamore 极大启发的 JavaScript 库。许多概念,如细粒度反应性和组件作为工厂函数,都是从 Solid 借用的。如果您不介意使用 JavaScript(或 TypeScript),请去看看!
  • Yew:用于构建客户端 Web 应用的 Rust / Wasm 框架
    Yew 也是 Sycamore 的一个重要灵感来源。Yew 采用 VDOM 并具有 MVU(Elm)架构。如果您认为这适合您,请看看!
  • MoonZoon:Rust Fullstack 框架
    MoonZoon 也支持无 VDOM 的范式,并使用 dominator 作为其底层 DOM 层。MoonZoon 是一个全栈框架,它使将前端和后端代码结合起来变得更容易,且不需要太多样板代码。

贡献

  • 问题跟踪器 上报告问题。
  • 我们喜欢 Pull Requests!有关更多信息,请参阅文档中关于贡献的 部分

Sycamore 的实现离不开社区的美好贡献。谢谢大家!

特别感谢 @nate-sys 设计 Sycamore 的标志!

依赖关系

~2.4–6.5MB
~118K SLoC