【Rust日报】arnis - 在Minecraft中自动生成现实世界

科技   2024-09-23 22:42   加拿大  

arnis - 在Minecraft中自动生成现实世界

arnis 可以根据OpenStreetMap的地理空间数据在Minecraft Java版中生成现实世界的任何选定位置,具有很高的细节水平。该项目从Overpass API获取原始数据,包括每个元素(建筑物、墙壁、喷泉、农田等)的坐标节点和描述标签。运行时,它会自动完成数据获取、解析、排序、生成Minecraft世界、创建地面层等过程。

用户可以指定目标区域的经纬度范围坐标,生成相应的Minecraft世界。该项目旨在模块化、性能优化、跨平台支持、全面文档说明和用户友好体验。它欢迎所有人的贡献,无论是修复错误、改进性能、添加新功能还是增强文档。该项目使用GPL-3.0许可证。

https://github.com/louis-e/arnis

Fjall - 可嵌入键值存储引擎

Fjall是一个用Rust编写的基于LSM的可嵌入键值存储引擎。它具有以下特点:

  • 线程安全的BTreeMap类API
  • 完全安全和稳定的Rust代码
  • 支持范围和前缀搜索,支持正向和反向迭代
  • 自动后台维护
  • 分区(也称为列族),支持跨分区原子语义
  • 内置压缩(默认为LZ4)
  • 单写入多读取事务(可选)
  • 键值分离,支持大blob用例(可选)
  • 每个Keyspace是一个单独的逻辑数据库,被分割成多个分区
  • 每个分区物理上是单独的LSM树和逻辑集合,但跨分区的写操作是原子的

它不是一个独立服务器、关系数据库或宽列数据库。它对键和值大小有一定限制。Fjall在内部同步以支持多线程访问,并提供了持久性控制等功能。它使用稳定的磁盘格式,并提供迁移路径。该项目还提供了实际示例和文档,欢迎提问、反馈或贡献。项目代码以MIT或Apache-2.0许可开源。

https://github.com/fjall-rs/fjall

value-log - 通用键值对分离存储库的实现

value-log是一个用Rust编写的通用键值对分离存储库的实现,受到了RocksDB的BlobDB和Titan的启发。它提供了线程安全的API、支持通用KV索引结构(如LSM树)、可选的每个Blob压缩、用于热数据的内存Blob缓存(可在多个值日志之间共享以限制内存使用)以及在线垃圾收集。密钥长度限制为65536字节,值长度限制为2^32字节。它具有稳定的磁盘格式,版本1.0.0后的重大变更将导致主版本号升级和迁移路径。所有源代码使用MIT或Apache-2.0许可,贡献也需要使用这两种许可之一。该库旨在作为键值对分离存储的构建块。

https://github.com/fjall-rs/value-log

lsm-tree - Rust 语言实现的日志结构合并树

lsm-tree是一个 Rust 语言实现的日志结构合并树(LSM-tree/LSMT)。它提供了一个基本的 LSM 树实现,而不是一个完整的存储引擎。该实现具有以下特性:

  • 线程安全的 BTreeMap 类似 API
  • 100% 安全和稳定的 Rust 代码
  • 支持压缩的基于块的表格
  • 支持范围和前缀搜索,支持正向和反向迭代
  • 支持分级、(并发)分层和 FIFO 合并策略
  • 支持多线程刷新(不可变/密封内存表)
  • 使用分区块索引减少内存占用并保持启动时间短
  • 支持块缓存将热数据保存在内存中
  • 支持 Bloom 过滤器提高点查询性能(可选)
  • 支持快照(MVCC)
  • 支持键值分离(可选)
  • 支持单个删除墓碑("弱"删除)
  • 键值大小有限制

该实现提供了多种压缩算法选择(lz4、miniz)和 Bloom 过滤器选项。磁盘格式在 1.0.0 版本后稳定,2.0.0 使用新格式需要手动迁移。所有源代码使用 MIT 或 Apache-2.0 许可证。该仓库还包括一些开发和基准测试的说明。

https://github.com/fjall-rs/lsm-tree

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章