#google #google-api #list

google-api-proto

This library generated from googleapis/googleapis using tonic-build

710 stable releases

1.710.0 Sep 4, 2024
1.706.0 Aug 31, 2024
1.696.0 Jul 2, 2024
1.571.0 Mar 30, 2024
1.0.0-alpha.2 Dec 30, 2021

#1875 in Network programming

Download history 1525/week @ 2024-08-23 2091/week @ 2024-08-30 1394/week @ 2024-09-06 911/week @ 2024-09-13 1080/week @ 2024-09-20 1021/week @ 2024-09-27 1071/week @ 2024-10-04 891/week @ 2024-10-11 692/week @ 2024-10-18 777/week @ 2024-10-25 766/week @ 2024-11-01 745/week @ 2024-11-08 1275/week @ 2024-11-15 1287/week @ 2024-11-22 1397/week @ 2024-11-29 20881/week @ 2024-12-06

24,978 downloads per month
Used in spanner-rs

MIT/Apache

67MB
1M SLoC

google-api-proto

ci pub doc version

This library generated from googleapis/googleapis using tonic-build.

Overview

This library contains all the code generated from the googleapis/googleapis.

When using each product API, you must explicitly include it in your build using a feature flag.
For example, if you want to use Cloud Pub/Sub, write features = ["google-pubsub-v1"] to Cargo.toml.

The feature name is the period of the package name of each proto file, replaced by a hyphen. If you specify a package, it will automatically load the dependent packages and include them in the build. It means that features = ["google-spanner-admin-database-v1"] is the same as the code below:

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
                }
            }
        }
    }
}

In addition, multiple features can be specified.
The list of available features can be found here.

Version matrices

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
1.697.0 <= 0.12.x 0.12.x

Example

The complete code can be found here.

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.12.0", features = ["tls", "tls-webpki-roots"] }
prost = "0.13.1"
prost-types = "0.13.1"
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(())
}

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Dependencies

~5–11MB
~114K SLoC