#runescape #cache #idx #rs

idx-rs

用于处理IDX格式RuneScape缓存的快速且高效的库

16个版本

0.10.0 2021年12月19日
0.9.12 2021年12月13日
0.8.1 2021年12月10日

缓存中排名157

每月下载量30

GPL-3.0许可

39KB
665 行代码

Crates.io Documentation Discord Chat

idx-github 此图像由GIMP自豪地制作

许可协议

根据GNU GPL版本3.0许可,除非您明确表示,否则您提交给工作的任何贡献(根据GPL-3.0许可定义)将根据GPL-3.0许可的完整条款纳入项目。

贡献

除非您明确表示,否则您提交的任何贡献,有意提交以供包含在作品中,根据GPL-3.0许可定义,将根据GPL-3.0许可的完整条款纳入项目。

我在哪里可以获得缓存?

我不能,也不会,不希望提供Jagex拥有的任何缓存的副本。这些是受版权保护的作品,我不鼓励侵犯它们的版权。这些由您自行获取。一个很好的资源是OpenRS2存档

快速入门

IDX实际上相对简单易用。如果您只想尽快启动一个工作示例,以下是一个示例配置,应该能迅速启动。

请注意,以下示例中的test_cache应替换为您IDX格式缓存的路径。

use std::sync::{Arc, Mutex};

use idx::*;
use idx::util::*;
use databuffer::DataBuffer;

fn main() {
    let cache = Arc::from(Mutex::from(Cache::from_path("test_cache")));

    let data_provider = FileProvider::from(&cache);
    data_provider.index(19).archive(&1);

    let mut data: DataBuffer = data_provider.request(&0); //This will return a DataBuffer containing the data from File 0, Archive 1, Index 19.
}

IDX的Cache结构被设计成可以包装在Arc<Mutex<Cache>>中,以便可以同时创建多个引用。同时,FileProviderDefProvider都利用这一点来允许创建多个同时的文件/定义提供者。

有关FileProviderDefProvider的更多信息,请参阅docs.rs上的文档,具体为:FileProviderDefProvider

基准测试

IDX在执行其任务时非常快。其中一些速度显然取决于您是使用SSD还是HDD,但一般来说,速度相当快。由于Criterion的基准测试,我能够提供以下基准测试图形,测试从索引19读取随机文件。

image

依赖关系

~1–2.3MB
~36K SLoC