Silex
下一代高性能 Rust Web 框架 | Next Generation High-Performance Rust Web Framework
Silex 是一个基于 细粒度响应式 (Fine-Grained Reactivity) 和 无虚拟 DOM (No Virtual DOM) 架构的 Rust Web 框架。它结合了 SolidJS 的极致性能与 SwiftUI 的 流式声明式 API,旨在为 Rust 开发者提供最符合直觉的 Web 开发体验。
🌟 核心特性 (Key Features)
1. 🚀 极致性能 (Blazing Fast)
Silex 摒弃了传统的虚拟 DOM Diff 算法。通过精确的依赖追踪,应用状态 (Signal) 的变化会直接更新对应的 DOM 节点。
- O(1) 更新复杂度:无论应用多大,更新成本仅与变化的数据量相关。
- 零运行时开销:构建者模式和宏在编译时优化,运行时极为轻量。
2. 🦀 锈式美学 (Rusty & Fluent)
Silex 提供了一套完全符合 Rust 习惯的流式构建者 API (Builder API)。
- Children-First:像 SwiftUI 一样编写 UI,结构清晰,层级分明。
- 类型安全:从 HTML 属性到事件处理,一切皆有类型检查,彻底告别运行时拼写错误。
- 灵活风格:支持 宏风格 (
div![...])、函数风格 (div(...)) 以及 混合风格,满足不同开发偏好。
3. 🛠️ 全栈工具链 (Batteries Included)
Silex 不仅仅是一个视图库,它提供了构建现代 Web 应用所需的一切:
- 路由系统 (
silex_router):类型安全的客户端路由,支持嵌套和参数配置。 - 状态管理 (
silex_store):基于宏的细粒度全局状态管理。 - CSS-in-Rust (
silex_css):支持局部作用域的 CSS 宏,编译时压缩与校验。 - 异步原语:内置
Resource和Suspense,轻松处理异步数据加载。
📦 快速开始 (Quick Start)
1. 添加依赖
在你的 Cargo.toml 中添加:
[]
= "0.1.0-beta.1" # 请使用最新版本
2. 编写你的第一个应用
use *;
🧩 模块概览 (Modules Overview)
Silex 采用模块化设计,核心功能拆分为多个 Crate 以保持架构清晰。
| Crate | 描述 | 文档重点 |
|---|---|---|
silex |
主入口 (Facade) | 重新导出所有核心功能,提供顶层 API。 |
silex_core |
核心逻辑 | Signal, Effect, Resource, Context 等响应式原语。 |
silex_dom |
DOM 绑定 | TypedElement, View Trait, 以及属性系统实现。 |
silex_html |
HTML DSL | 包含 HTML5 规范的所有标签构造函数 (div, span, input...)。 |
silex_macros |
宏支持 | #[component], css!, #[derive(Route)], #[derive(Store)]。 |
silex_reactivity |
响应式引擎 | 底层无类型的响应式图谱实现 (Runtime, NodeId, Graph)。 |
🎨 核心功能展示
1. 声明式路由 (Router)
通过 Enum 定义路由,享受编译时类型检查带来的安稳。
2. CSS-in-Rust
不再需要单独的 CSS 文件,也不必担心类名冲突。
let btn_class = css!;
button.class
3. 全局状态 (Store)
复杂状态管理变得简单而直观。
// 在组件中使用
let settings = ;
// 细粒度更新:仅更新 theme 相关的 DOM
settings.theme.set;
🤝 贡献 (Contributing)
Silex 处于快速迭代阶段,欢迎任何形式的贡献!无论是提交 Issue、PR,还是完善文档。
详情请参考 docs/ 目录下的开发文档: