Dvorak
Dvorak

Dvorak Chen

Design maybe the art of programming


Leptos - CSR & SSR

这篇文章探讨了 Leptos 框架在处理服务器端渲染(SSR)和客户端渲染(CSR)方面的实现细节。Leptos 通过“脱水”、“浸泡”和“湿润”三个阶段实现了高效的 SSR 流程:“脱水”阶段生成适合搜索引擎抓取的静态 HTML,“浸泡”阶段将 JavaScript 脚本插入到静态 HTML 中,“湿润”阶段则通过执行 JavaScript 将页面转换为功能齐全的现代应用。文章还详细介绍了 Leptos 的代码组织方式,包括使用 `main.rs` 和 `lib.rs` 文件分别处理服务器端和客户端代码,并通过 Rust 的特性(features)机制实现了环境分离。此外,Leptos 提供了 Server Functions 功能,允许在组件中调用服务器端代码,但需要注意引用规则和依赖管理。文章最后指出 Leptos 在 SSR 方面的创新性,但也提到其复杂性和潜在问题,并对比了 React 的易用性优势。--DeepSeek

Rust Leptos Server Side Rendering Actix web Hydration Server Functions

在 Rust 中使用 Actor 模型

这篇博文探讨了在 Rust 中使用 Actor 模型来解决多线程共享变量的线程安全问题。文章首先介绍了在 Rust 中通过 `Mutex` 和 `HashMap` 来管理多个客户端连接的方式,但指出这种做法会导致阻塞问题,因为 `Mutex` 锁住 `HashMap` 期间其他线程无法访问资源。作者尝试优化代码以绕过生命周期检查,但这种方法不安全且不符合 Rust 的最佳实践。 随后,文章引入了 Actor 模型作为解决方案。每个客户端被建模为一个独立的 Actor,持有自己的 `TcpStream` 和消息队列(Inbox),通过消息传递来触发行为,从而避免了全局变量和原始指针的使用。这种设计不仅提高了代码的安全性和可维护性,还提供了一个干净且高效的多线程解决方案。 文章最后总结了 Actor 模型的优势,并鼓励读者探索其在类似场景中的应用。作者提供了示例代码仓库链接,方便读者进一步学习和实践。--DeepSeek

Rust Concurrency Thread Safety Mutex Actor Model TcpStream

  • 1