696个稳定版本
1.696.0 | 2024年7月2日 |
---|---|
1.659.0 | 2024年5月31日 |
1.571.0 | 2024年3月30日 |
1.452.0 | 2023年12月29日 |
1.0.0-alpha.2 | 2021年12月30日 |
215 在 网络编程
2,587 每月下载量
用于 4 包
67MB
1M SLoC
google-api-proto
此库由 googleapis/googleapis 使用 tonic-build 生成。
概述
此库包含从 googleapis/googleapis 生成的所有代码。
使用每个产品API时,必须通过功能标志显式将其包含在构建中。
例如,如果您想使用 Cloud Pub/Sub,请将以下内容写入 Cargo.toml:features = ["google-pubsub-v1"]
功能名称是每个proto文件包名的点分隔符,替换为连字符。如果您指定了包,它将自动加载依赖包并将它们包含在构建中。这意味着 features = ["google-spanner-admin-database-v1"]
与下面的代码相同
pub mod google {
pub mod api {
// generated code
}
pub mod iam {
pub mod v1 {
// generated code
}
}
pub mod longrunning {
// generated code
}
pub mod r#type {
// generated code
}
pub mod rpc {
// generated code
}
pub mod spanner {
pub mod admin {
pub mod database {
pub mod v1 {
// generated code
}
}
}
}
}
此外,可以指定多个功能。
可用功能的列表可以在 此处 找到。
版本矩阵
google-api-proto | tonic | tonic-build |
---|---|---|
1.0.0 <= | 0.6.x | 0.6.x |
1.59.0 <= | 0.7.x | 0.7.x |
1.243.0 <= | 0.8.x | 0.8.x |
1.280.0 <= | 0.9.x | 0.9.x |
1.415.0 <= | 0.10.x | 0.10.x |
1.516.0 <= | 0.11.x | 0.11.x |
示例
完整代码可以在 此处 找到。
Cargo.toml
[dependencies]
# For runtime
tokio = { version = "1.33.0", features = ["macros", "rt-multi-thread"] }
# For google authentication
google-authz = { version = "1.0.0-alpha.5", features = ["tonic"] }
# For gRPC
tonic = { version = "0.11.0", features = ["tls", "tls-webpki-roots"] }
prost = "0.12.3"
prost-types = "0.12.3"
google-api-proto = { version = "1", features = ["google-spanner-admin-database-v1"] }
main.rs
use std::env;
use google_api_proto::google::spanner::admin::database::v1::{
database_admin_client::DatabaseAdminClient, ListDatabasesRequest,
};
use google_authz::GoogleAuthz;
use tonic::{transport::Channel, Request};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let project = "google project id";
let instance = "spanner instance name";
let channel = Channel::from_static("https://spanner.googleapis.com").connect().await?;
let channel = GoogleAuthz::new(channel).await;
let mut client = DatabaseAdminClient::new(channel);
let response = client
.list_databases(Request::new(ListDatabasesRequest {
parent: format!("projects/{}/instances/{}", project, instance),
page_size: 100,
..Default::default()
}))
.await?;
println!("response = {:#?}", response);
Ok(())
}
许可证
根据您的选择,受Apache License, Version 2.0 或 MIT 许可证许可。
依赖项
~4–6MB
~100K SLoC