gcp-bigquery-client
An ergonomic async client library for GCP BigQuery.
0.28.0
6.9M downloads/mo
#3836 most downloaded on crates.io
lquerel/gcp-bigquery-client
What this package is like to depend on
Last release 6 months ago
01 Feb 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 35 of 45 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
45 releases · first in 2021
2 releases in the last 12 months
see the full history below
Release timeline
45 releases · Feb 2021 to Feb 2026Releases
latest 45-
0.28.001 Feb 2026Nothing published for this version
-
0.27.007 Sep 2025Nothing published for this version
-
0.26.006 Jul 2025Release notes
Open source →Fix
- Fix BigQuery job_statistics.reservation_id serde to use snake_case. Thanks @benjaminran PR #120
-
0.25.128 Jan 2025 -
0.25.012 Jan 2025Release notes
Open source →What's Changed
- chore: add TableValuedFunction routine type by @thevaibhav-dixit in #109
- make ResultSet more general by @imor in #97
- add insert_all_gzipped endpoint by @idobenamram in #110
- add
f64type and repeated field mode support in AppendRows API by @imor in #112 - Reduce dependency (axum) by @hirofumi in #115
- Limit request size to under 10 MB for AppendRows API by @imor in #114
New Contributors
- @thevaibhav-dixit made their first contribution in #109
- @idobenamram made their first contribution in #110
- @hirofumi made their first contribution in #115
Full Changelog: 0.23.0...0.25.0
-
0.24.105 Nov 2024Release notes
Open source →Added
- Added
insert_all_gzippedmethod, see this PR for more details. Thanks @idobenamram.
- Added
-
0.24.004 Nov 2024Release notes
Open source →Changed
-
Added missing routine type
TableValuedFunctionas specified in the reference. It also fixes the data type ofcreation_timeandlast_modified_timeto String type (see https://cloud.google.com/bigquery/docs/reference/rest/v2/routines). Thanks @thevaibhav-dixit. -
Added a new method
ResultSet::new_from_get_query_results_responsewhich creates aResultSetfrom aGetQueryResultsResponse. Thanks @imor. -
Breaking changes:
- Return type of
JobApi::querychanged fromResult<ResultSet, BQError>toResult<QueryResponse, BQError>. ResultSet::newrenamed toResultSet::new_from_query_response.
- Return type of
-
Rationale for the breaking changes:
JobApi::querynow returnsResult<QueryResponse, BQError>instead ofResult<ResultSet, BQError>. AResultSetwraps over aQueryResponsebut callers didn't have acces to that internal object. To allow callers access to the internal object,JobApi::querynow returns the internal object itself. This means older code which expected aResultSetwill break. -
Upgrading to the new version:
To fix broken code, you'll have to call
ResultSet::from_query_responsefunction. For example, if your code looked like this:let mut result_set = client .job() .query( project_id, query_request, ) .await?;It should be updated to:
let query_response = client .job() .query( project_id, query_request, ) .await?; let mut result_set = ResultSet::new_from_query_response(query_response);Another reason for the change was making it consistent with
JobApi::get_query_resultswhich already returned an unwrapped object which callers needed to manually wrap inside aResultSetby callingResultSet::newmethod.
-
-
0.23.010 Aug 2024Release notes
Open source →What's Changed
- Add support for bigquery AppendRows storage write API by @imor in #95
- Add GZIP support by @Deniskore in #90
- Fix error about invalid certificate when calling
append_rowsapi by @imor in #107 - Re-export hyper_rustls from yup by @DoumanAsh in #85
- pub use yup_oauth2; by @serprex in #86
- yup-oauth2 10 by @serprex in #89
- yup-oauth2 11 by @serprex in #92
- Fix clippy warnings produced with Rust 1.78.0 by @imor in #94
- tonic 0.12, prost 0.13 by @serprex in #104
New Contributors
- @DoumanAsh made their first contribution in #85
- @serprex made their first contribution in #86
- @imor made their first contribution in #94
- @Deniskore made their first contribution in #90
Full Changelog: 0.18.1...0.23.0
Release notes
Open source →Fix
- Fix a root certificate issue following a breaking change in Tonic (by @imor).
- Remove dependency on protoc. The generated code is now included in the repository (by @lquerel).
Maintenance
- Bump versions of
thiserror,hyper-util,tokio,serde,serde_json,tonic,tonic-build.
-
0.22.008 Jul 2024Release notes
Open source →Added
- Add partial support for BigQuery Storage Write API (by @imor).
- append_rows
- get_write_stream
- Add GZIP support for
insert_all(by @Deniskore). Thegzipfeature is included by default. See https://github.com/lquerel/gcp-bigquery-client/issues/74 for more information.
Breaking changes:
- Client::from_authenticator is now async.
- ClientBuilder::build_from_authenticator is now async.
Maintenance
- Bump version of
yup_oauth2to v11 (by @serpex).gcp-bigquery-clientcan now be used with ring or aws-lc-rs as a TLS backend. - Fix Clippy warnings produced with Rust 1.78.0 (by @imor).
- Add partial support for BigQuery Storage Write API (by @imor).
-
0.20.028 Apr 2024 -
0.19.027 Apr 2024Release notes
Open source →Maintenance
- Re-export hyper_rustls from yup (Thanks to @DoumanAsh)
- Bump versions of all dependencies to their most recent versions (including hyper and yup-oauth2)
-
0.18.130 Mar 2024Release notes
Open source →What's Changed
- Apply the same fix as #54 to
query_allby @LawnGnome in #64 - Feature/paginate through all jobs list by @Shirlo in #63
- Fix tabledata.list return type by @enricozb in #67
- add
table_data_list_responsemodule by @enricozb in #69 - add
#[serde(default)]toNestedResponseError:statusby @henriiik in #79 - Allow building
ClientfromAuthenticatorby @henriiik in #77
New Contributors
- @LawnGnome made their first contribution in #64
- @Shirlo made their first contribution in #63
- @enricozb made their first contribution in #67
- @henriiik made their first contribution in #79
Full Changelog: 0.17.0...0.18.1
Release notes
Open source →Improvement
- Add support to bigquery-emulator (Thanks to @henriiik)
- Add support to use the ClientBuilder to build a Client with an Authenticator (Thanks to @henriiik)
Fix
- Fix build issue with hyper-rustls (Thanks to @OmriSteiner and @nate-kelley-buster)
- Apply the same fix as #54 to
-
0.18.022 Oct 2023 -
0.17.101 Oct 2023Release notes
Open source →Improvement
- Feature/paginate through all jobs list #63 (Thank you @Shirlo)
Fix
- Apply the same fix as #54 to query_all #64 (Thank you @LawnGnome)
-
0.17.001 Jul 2023Release notes
Open source →Improvement
- Add support for JSON column types. Thanks to Michael Gibson (@mchlgibs) for this contribution.
-
0.16.811 Jun 2023Release notes
Open source →Improvement
- Add
get_serdeandget_serde_by_namemethods to read columns for any types that implementsserde::de:DeserializeOwned. Thanks to @andyquinterom for this contribution.
- Add
-
0.16.725 Apr 2023 -
0.16.606 Mar 2023Release notes
Open source →Improvement
- Fix Rows are not present when job not completed yet (Thanks @alu).
-
0.16.505 Feb 2023 -
0.16.428 Dec 2022Release notes
Open source →Improvement
- Update
FieldTypeenum toGeographyfield type (Thanks @kiibo382).
- Update
-
0.16.312 Dec 2022Release notes
Open source →Improvement
- Two new methods in the job API
query_all_with_locationandquery_all_with_job_reference(Thanks @MikhailMS).
- Two new methods in the job API
-
0.16.212 Nov 2022 -
0.16.109 Nov 2022Release notes
Open source →Improvement
- Application default credentials auth & authorized user auth (#46) (Thanks @kiibo382).
Fix
- Installed flow auth - execute the authorization code flow before returning (#45) (Thanks @kiibo382).
- Avoid panic when schema doesn't exist (#44) (Thanks @lee-hen).
-
0.16.006 Nov 2022Release notes
Open source →Improvement
- Better error management in Client::from_service_account_key_file (Thanks @burmecia).
-
0.15.003 Nov 2022Release notes
Open source →Improvement
- Abstraction of the Authenticator (Thanks @kiibo382).
- InstalledFlowAuthenticator support (Thanks @kiibo382).
- Support for BigQuery emulator (Thanks @Marcoleni)
- Bump yup-oauth2 crate version.
- Bump time crate version (security issue).
-
0.14.027 Sep 2022Release notes
Open source →Fix
- Process list - Change numeric_id type from u64 to string (Thanks @kiibo382)
-
0.13.011 Jul 2022Release notes
Open source →Improvement
- Make Client cloneable (Thanks @lee-hen).
- Bump yup-oauth2 crate version.
- Bump time crate version (security issue).
- Change Job.query_all method signature to return a stream to support more use cases (Thanks LiHRaM).
-
0.12.204 Jun 2022Release notes
Open source →Improvement
- Add query_all method to support result pagination (Thanks to @LiHRaM).
-
0.12.121 May 2022Release notes
Open source →Fix
- Fix dependencies issues (Thanks to @MathiasKindberg).
- Fix view creation (Thanks to @jeffreybolle).
-
0.12.017 Apr 2022 -
0.11.003 Jan 2022 -
0.10.223 Nov 2021 -
0.10.011 Oct 2021Release notes
Open source →Added
- 2 features
native-tlsandrust-tlsto respectively use OpenSSL or Rust TLS. - Add methods
is_empty,len,cleartoTableDataInsertAllRequest. - Add method
add_rowstoTableDataInsertAllRequest(thanks @nixxholas). - Bump version for yup-oauth2 v6 (thanks @JamesHinshelwood).
- Implement
Defaulttrait for most of the structures in the model sub-directory. - Implement
Clonetrait for most of the structures in the model sub-directory. - Implement
Displaytrait forErrorProtoandTableDataInsertAllResponseInsertErrors.
- 2 features
-
0.9.305 Sep 2021Release notes
Open source →Fix
- Fix ResultSet.get_i64 not working with some valid integer notation (e.g. 123.45E4) (Thanks to @komi1230).
-
0.9.230 Aug 2021 -
0.9.117 Aug 2021 -
0.9.028 Mar 2021Release notes
Open source →Warning: this version is incompatible with the previous version.
Added
- Added dataset.delete_if_exists.
- Added table.delete_if_exists.
- Added new setters for dataset and table structs.
Changed
- Removed redundant parameters in dataset.create.
- Removed redundant paramaters in table.create.
- Improved BQError::ResponseError.
- Improved the example.
-
0.8.008 Mar 2021Nothing published for this version
-
0.7.007 Mar 2021Nothing published for this version
-
0.6.026 Feb 2021Nothing published for this version
-
0.5.020 Feb 2021Nothing published for this version
-
0.4.020 Feb 2021Nothing published for this version
-
0.3.016 Feb 2021Nothing published for this version
-
0.2.015 Feb 2021Nothing published for this version
-
0.1.014 Feb 2021Nothing published for this version