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 次
22KB
263 行
Femtorinth
⚠️ 这个库不再维护,我在发现一个名为“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