如何创建两个“简单”的分配器
这篇文章是作者分享的关于构建"简单"分配器的经验。他从构建可以提供4字节对齐和分配内存区块的简单分配器开始。
在 Rust 中,所有的分配器需要始于trait std::alloc::GlobalAlloc,该trait提供了两种方案去分配和回收内存。创建分配器后,它可以在程序中全局使用。作者首先定义了一个包含锁和分配空间的分配器结构体。然后,他创建了一个公共分配器,并在堆中创建了一个 i32。为了使分配器起作用,他检查了内存大小和对齐方式来进行实际的分配。在遇到挑战后,他通过不断尝试和错误找到了解决方法。
原文链接 https://blog.maguire.tech/posts/explorations/allocators/
Rust中的 enum 和模式匹配
本文介绍了 Rust 语言的枚举(Enums)和模式匹配(Pattern Matching)。
Rust 的枚举可具有多个变体,有别于其他语言的命名常量概念。模式匹配则通过 match 和 if let 表达式进行,相比其他语言的 switch 有更大的灵活性与能力。此外,Rust 的枚举可以存储数据,配合 match 表达式,可以解构变体以获取数据。这两大特性为处理不同类型和逻辑提供了强大工具,充分体现了 Rust 对表达力和安全性的重视。
原文链接 https://rustjobs.dev/blog/enums-and-pattern-matching-in-rust/
Rust全栈开发有一个光明的未来
这是一个油管视频, 作者认为 Rust 作为全栈开发利器,会有一个光明的未来. 并且作者列举了一些目前来说比较常用的框架, 并且对比了 Dioxus 和 Leptos 这两个框架.
油管视频 https://www.youtube.com/watch?v=tq3-M7QJiWg
capnproto-rust: 0.19 版本发布
Cap'n Proto 是一个分布式系统的类型系统。使用 Cap'n Proto,你可以在一个schema文件中描述你的数据和接口
代码语言:javascript复制@0x986b3393db1396c9;
struct Point {
x @0 :Float32;
y @1 :Float32;
}
interface PointTracker {
addPoint @0 (p :Point) -> (totalPoints :UInt64);
}
之后,可以使用 capnp tool 来生成多种语言的代码.
原文链接 https://github.com/capnproto/capnproto-rust?tab=readme-ov-file