NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3853 most downloaded on crates.io
An ergonomic async client library for GCP BigQuery.
Last release 8 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
One column per quarter.
Nothing published for this version
Nothing published for this version
Fix BigQuery job_statistics.reservation_id serde to use snake_case. Thanks @benjaminran PR #120
Add interval to field type. Thanks @Groennbeck PR #117
chore: add TableValuedFunction routine type by @thevaibhav-dixit in #109
f64 type and repeated field mode support in AppendRows API by @imor in #112Full Changelog: 0.23.0...0.25.0
Added insert_all_gzipped method, see this PR for more details. Thanks @idobenamram.
insert_all_gzipped method, see this PR for more details. Thanks @idobenamram.Rationale for the breaking changes:
Added missing routine type TableValuedFunction as specified in the reference.
It also fixes the data type of creation_time and last_modified_time to 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_response which creates a ResultSet from a GetQueryResultsResponse. Thanks @imor.
Breaking changes:
JobApi::query changed from Result<ResultSet, BQError> to Result<QueryResponse, BQError>.ResultSet::new renamed to ResultSet::new_from_query_response.Rationale for the breaking changes:
JobApi::query now returns Result<QueryResponse, BQError> instead of Result<ResultSet, BQError>. A ResultSet wraps over a QueryResponse but callers didn't have acces to that internal object. To allow callers access to the internal object, JobApi::query now returns the internal object itself. This means older code which expected a ResultSet will break.
Upgrading to the new version:
To fix broken code, you'll have to call ResultSet::from_query_response function. 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_results which already returned an unwrapped object which callers needed to manually wrap inside a ResultSet by calling ResultSet::new method.
Add support for bigquery AppendRows storage write API by @imor in #95
append_rows api by @imor in #107Full Changelog: 0.18.1...0.23.0
thiserror, hyper-util, tokio, serde, serde_json, tonic, tonic-build.Add partial support for BigQuery Storage Write API (by @imor).
insert_all (by @Deniskore). The gzip feature is included by default.
See https://github.com/lquerel/gcp-bigquery-client/issues/74 for more information.Breaking changes:
yup_oauth2 to v11 (by @serpex). gcp-bigquery-client can now be used with ring or aws-lc-rs as
a TLS backend.Re-export yup_oauth2 as suggested by @serpex.
Re-export hyper_rustls from yup (Thanks to @DoumanAsh)
Apply the same fix as #54 to query_all by @LawnGnome in #64
query_all by @LawnGnome in #64table_data_list_response module by @enricozb in #69#[serde(default)] to NestedResponseError:status by @henriiik in #79Client from Authenticator by @henriiik in #77Full Changelog: 0.17.0...0.18.1
Fix tabledata.list return type (Thank you @enricozb)
Feature/paginate through all jobs list #63 (Thank you @Shirlo)
Add support for JSON column types
Add support for JSON column types
Add get_serde and get_serde_by_name methods to read columns for any types that implements serde:DeserializeOwned. Thanks to @andyquinterom for this co
get_serde and get_serde_by_name methods to read columns for any types that implements serde::de:DeserializeOwned. Thanks to @andyquinterom for this contribution.### Improvement - Update hyper-rustls version.
Fix Rows are not present when job not completed yet (Thanks @alu).
Add format_options field to QueryRequest (Thanks @JichaoS).
format_options field to QueryRequest (Thanks @JichaoS).Update FieldType enum to Geography field type (Thanks @kiibo382).
FieldType enum to Geography field type (Thanks @kiibo382).Two new methods in the job API query_all_with_location and query_all_with_job_reference (Thanks @MikhailMS).
query_all_with_location and query_all_with_job_reference (Thanks @MikhailMS).Example to run with bigquery-emulator (Thanks @marcoleni).
Application default credentials auth & authorized user auth (#46) (Thanks @kiibo382).
Better error management in Client::from_service_account_key_file (Thanks @burmecia).
Abstraction of the Authenticator (Thanks @kiibo382).
Process list - Change numeric_id type from u64 to string (Thanks @kiibo382)
Make Client cloneable (Thanks @lee-hen).
Add query_all method to support result pagination (Thanks to @LiHRaM).
Fix dependencies issues (Thanks to @MathiasKindberg).
### Improvement - Replace Chrome by Time.
Fix QueryParameter type declaration (Thanks to @newapplesho).
Fix 2 issues in the job API (Thanks to @nixxholas).
2 features native-tls and rust-tls to respectively use OpenSSL or Rust TLS.
native-tls and rust-tls to respectively use OpenSSL or Rust TLS.is_empty, len, clear to TableDataInsertAllRequest.add_rows to TableDataInsertAllRequest (thanks @nixxholas).Default trait for most of the structures in the model sub-directory.Clone trait for most of the structures in the model sub-directory.Display trait for ErrorProto and TableDataInsertAllResponseInsertErrors.Fix ResultSet.get_i64 not working with some valid integer notation (e.g. 123.45E4) (Thanks to @komi1230).
Fix Workload identify serialization issue (Thanks to @komi1230).
Workload identify support (Thanks to @komi1230).
> Warning: this version is incompatible with the previous version.
Warning: this version is incompatible with the previous version.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →