#垃圾回收 #线程安全 #数据结构 #手动 #多线程 #自持

ndata

线程安全、自持、手动垃圾回收的 JSON 类似数据

43 个发布版本

0.3.10 2024 年 1 月 24 日
0.3.7 2023 年 12 月 5 日
0.3.6 2023 年 9 月 15 日
0.3.5 2023 年 3 月 12 日
0.1.5 2022 年 7 月 13 日

#139 in 内存管理

Download history 1/week @ 2024-04-16 9/week @ 2024-04-23 1/week @ 2024-05-14 8/week @ 2024-05-21 1/week @ 2024-05-28 4/week @ 2024-06-04 2/week @ 2024-06-11 1/week @ 2024-06-18

237 每月下载量
用于 flowlang

MIT 许可证

70KB
1.5K SLoC

NData

NData 提供支持对象、数组、字符串、整数、浮点数、布尔值、字节数组缓冲区和 null 的自持数据结构。DataObject、DataArray 和 DataBytes 实例维护引用计数。通过调用 NData::gc() 函数手动执行垃圾回收。

快速原型设计

与具有内置垃圾回收和宽松类型安全的语言相比,Rust 的内存管理和类型安全可能会在开发初期增加显著的工作量。NData 恢复了这些优势,使 Rust 成为快速原型设计的理想语言。是的,这确实会重新引入性能损失和潜在的错误,但与那些其他语言不同,一旦你确定了逻辑,你可以轻松地将它们从代码中重构出来。

示例: 双向链表

多线程环境

NData 设计上是线程安全的。对象可以轻松地在线程之间共享,无需担心所有权或互斥锁等问题。

示例: 多线程

全局变量

不建议使用全局变量,原因很明显。然而,有时你仍然需要它们,而且你不需要为了在堆上放置一些数据而与不安全的代码、指针、盒子、单元等打交道。

示例: 全局变量

恐慌管理

当发生恐慌时,自持结构不会丢失。它们是在恐慌回溯时恢复关键信息的一种便捷方式。

示例: 恐慌

垃圾回收

NData 将 Toaster-Simple™ 垃圾回收添加到 Rust。

示例: 垃圾回收

热插拔实时代码

NData与hot-lib-reloader crate配合使用效果良好,允许你在编写代码的同时将新代码交换到正在运行的应用程序中,同时保持运行时变量的状态。

示例:热重载

依赖项

~0–275KB