#api #minecraft #modding #modrinth #api-calls

femtorinth

(不再维护)Femtorinth是一个用于与Modrinth API的一部分进行交互的库

4个版本

0.1.3 2021年11月29日
0.1.2 2021年10月24日
0.1.1 2021年10月21日
0.1.0 2021年10月20日

#5 in #modrinth

每月下载 23

MPL-2.0 许可证

22KB
263

Femtorinth

license issues stargazers Crates.io Crates.io

forthebadge

⚠️ 这个库不再维护,我在发现一个名为“MultiMC”的Minecraft启动器后失去了对这个项目的兴趣,但是如果你想与Modrinth API交互,请查看Modrinth,看看Ferinth crate,它更更新:D。

Femtorinth是一个Rust库,用于与Modrinth API的一部分进行交互,它只包括不需要认证(即只有GET调用)的API调用,它包括解析Modrinth API v1文档中存在的所有结构体以及结构体本身,还包括将返回这些结构体并处理调用Modrinth API的辅助函数,目前这个库正在使用ureq crate作为后端来调用Modrinth API,但计划在不久的将来改变,以便这个库可以成为后端无关(尽管我不知道这个库有什么用)。

目前Femtorinth仍然处于初级阶段,它有足够的错误处理、文档和代码,但我认为还有改进的空间,如果你有兴趣贡献,请查看这个readme中的路线图部分!

基本示例

获取最新的sodium版本+一点风格

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let results = femtorinth::search_mods("Sodium".into(), None, Some(1))?;
    let modres = results.hits[0].clone();
    println!("Found: {} from {}", &modres.title, &modres.author);
    println!("Description: {}", &modres.description);
    println!(
        "Downloads and follows: {} and {}",
        &modres.downloads, &modres.follows
    );
    println!(
        "Latest supported minecraft version: {}",
        &modres.latest_version
    );
    println!("Licensed under: {}", &modres.license);

    let version_list = femtorinth::version_list(modres.get_clean_id())?;
    let mod_version_data = version_list[0].clone();

    println!("Name of the newest version: {}", &mod_version_data.name);
    println!("Files for download with filenames:");
    for i in mod_version_data.files {
        println!("{}: {}", i.filename, i.url);
    }

    Ok(())
}

更多示例请查看GitHub上的examples/目录

为什么是"Femtorinth"?

Femtorinth是由两个单词组成的名称,Femtometre和Modrinth,Femtometre是一个极其小的公制单位(10^-15,甚至比皮还要小!),因为这个库只涵盖了Modrinth v1 API的一部分,这个名字非常合适!

路线图

  • 请有经验的人查看代码,并提供改进建议
  • 向项目中添加更多示例,以展示更多功能
  • 使文档和界面更容易阅读和使用
  • 使库后端无关,以便可以使用除ureq之外的http crate

贡献

感谢您对贡献的兴趣!请打开一个issue或merge request来贡献,并记得查看路线图,看看您是否能帮助实现其中的目标。根据MPL2.0许可证定义,您提交的用于包含在您的工作中的代码贡献应按照上述条款许可,不附加任何额外条款或条件。

许可证

本项目采用Mozilla Public License 2.0许可。

依赖

~2.4–3.5MB
~96K SLoC