0.7.0 |
|
---|---|
0.6.1 |
|
0.6.0 |
|
0.5.0 |
|
0.1.0 |
|
#63 in #github-api
82 每月下载量
用于 5 crates
63KB
2K SLoC
github-rs
服务 | 状态 |
---|---|
TravisCI | |
DependencyCI | |
AppveyorCI | |
CodeCov | |
crates.io |
对Github V3 API的纯Rust绑定。如果您需要V4库的绑定,请参阅github-graphql-rs库。
不完整的绑定
请查看端点文档,以了解当前API中哪些端点被覆盖。这是针对Github V3 API的。
依赖项和支持
github-rs旨在在所有一级支持的Rust系统上运行
- Windows
- Linux
- MacOSX
github-rs支持rustls和rust-native-tls用于TLS连接。默认情况下使用rustls
,但可以通过Cargo功能切换支持。
[dependencies.github-rs]
version = "0.6"
default-features = false
features = ["rust-native-tls"]
由于rustls
依赖于ring
进行加密,因此硬件支持仅限于ring
支持的硬件,目前为ARM和x86(32位和64位)。如果您正在为其他架构编译,则可以使用rust-native-tls
功能以获得最大的可移植性。
最低编译器版本
由于使用了某些功能,github-rs需要rustc版本1.18或更高。
项目目标
- 拥有一个健壮的API,其中所有内容都进行了适当的错误处理,以避免任何类型的恐慌。库是应用程序的基础,应该是构建的基础。
- 覆盖所有Github稳定端点。任何已弃用和beta版本的内容应仅通过配置获取。随着从Github删除弃用端点,也应该从该库中删除。
- 将稳定性作为API的一部分。为此,将努力确保此代码在稳定Rust上编译,而不是在nightly上。
- 易用性。对于不直接修改代码的人来说,复杂性应该被隐藏。
- 对一切进行文档编制,这样不仅容易修改,而且查找如何使用库也应该是容易的。
入门指南
将以下内容添加到您的Cargo.toml
[dependencies]
github-rs = "0.6"
serde_json = "1.0"
然后在您的lib.rs
或main.rs
文件中添加
use github_rs::client::{Executor, Github};
use serde_json::Value;
现在您可以开始进行查询。以下是一个获取用户信息的简单示例
use github_rs::client::{Executor, Github};
use serde_json::Value;
fn main() {
let client = Github::new("API TOKEN").unwrap();
let me = client.get()
.user()
.execute::<Value>();
match me {
Ok((headers, status, json)) => {
println!("{:#?}", headers);
println!("{}", status);
if let Some(json) = json{
println!("{}", json);
}
},
Err(e) => println!("{}", e)
}
}
在库上开发
- GitHub API参考文档
- 请参阅设计文档获取更多信息。
贡献
请参阅CONTRIBUTING.md获取更多信息。
许可
在以下许可协议下:
- Apache License, Version 2.0, (LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
许可协议
除非您明确指出,否则您根据Apache-2.0许可协议定义的贡献,将按上述方式双许可,无需任何额外条款或条件。
依赖
~12–25MB
~374K SLoC