PackageTrack
Sign in Get early access

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 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 45
  1. 0.28.0 01 Feb 2026

    Nothing published for this version

  2. 0.27.0 07 Sep 2025

    Nothing published for this version

  3. 0.26.0 06 Jul 2025
    Release notes

    Fix

    • Fix BigQuery job_statistics.reservation_id serde to use snake_case. Thanks @benjaminran PR #120
    Open source →
  4. 0.25.1 28 Jan 2025
    Release notes

    Added

    • Add interval to field type. Thanks @Groennbeck PR #117
    Open source →
  5. 0.25.0 12 Jan 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: 0.23.0...0.25.0

    Open source →
    Release notes

    Added

    • Limit request size to under 10 MB for AppendRows API. Thanks @imor - PR #514.
    • Added f64 type and repeated field mode support in AppendRows API. Thanks @imor - PR #512.
    • Reduce dependency (axum). Thanks @hirofumi - PR #115.
    Open source →
  6. 0.24.1 05 Nov 2024
    Release notes

    Added

    • Added insert_all_gzipped method, see this PR for more details. Thanks @idobenamram.
    Open source →
  7. 0.24.0 04 Nov 2024
    Release notes

    Changed

    • 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:

      • Return type of 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.

    Open source →
  8. 0.23.0 10 Aug 2024
    Release notes

    What's Changed

    New Contributors

    Full Changelog: 0.18.1...0.23.0

    Open source →
    Release notes

    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.
    Open source →
  9. 0.22.0 08 Jul 2024
    Release notes

    Added

    • Add partial support for BigQuery Storage Write API (by @imor).
      • append_rows
      • get_write_stream
    • Add GZIP support for 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:

    • Client::from_authenticator is now async.
    • ClientBuilder::build_from_authenticator is now async.

    Maintenance

    • Bump version of yup_oauth2 to v11 (by @serpex). gcp-bigquery-client can now be used with ring or aws-lc-rs as a TLS backend.
    • Fix Clippy warnings produced with Rust 1.78.0 (by @imor).
    Open source →
  10. 0.20.0 28 Apr 2024
    Release notes

    Maintenance

    • Re-export yup_oauth2 as suggested by @serpex.
    Open source →
  11. 0.19.0 27 Apr 2024
    Release notes

    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)
    Open source →
  12. 0.18.1 30 Mar 2024
    Release notes

    What's Changed

    New Contributors

    Full Changelog: 0.17.0...0.18.1

    Open source →
    Release notes

    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)
    Open source →
  13. 0.18.0 22 Oct 2023
    Release notes

    Fix

    • Fix tabledata.list return type (Thank you @enricozb)
    Open source →
  14. 0.17.1 01 Oct 2023
    Release notes

    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)
    Open source →
  15. 0.17.0 01 Jul 2023
    Release notes

    Add support for JSON column types

    Open source →
    Release notes

    Improvement

    • Add support for JSON column types. Thanks to Michael Gibson (@mchlgibs) for this contribution.
    Open source →
  16. 0.16.8 11 Jun 2023
    Release notes

    Improvement

    • Add 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.
    Open source →
  17. 0.16.7 25 Apr 2023
    Release notes

    Improvement

    • Update hyper-rustls version.
    Open source →
  18. 0.16.6 06 Mar 2023
    Release notes

    Improvement

    • Fix Rows are not present when job not completed yet (Thanks @alu).
    Open source →
  19. 0.16.5 05 Feb 2023
    Release notes

    Improvement

    • Add format_options field to QueryRequest (Thanks @JichaoS).
    Open source →
  20. 0.16.4 28 Dec 2022
    Release notes

    Improvement

    • Update FieldType enum to Geography field type (Thanks @kiibo382).
    Open source →
  21. 0.16.3 12 Dec 2022
    Release notes

    Improvement

    • Two new methods in the job API query_all_with_location and query_all_with_job_reference (Thanks @MikhailMS).
    Open source →
  22. 0.16.2 12 Nov 2022
    Release notes

    Improvement

    • Example to run with bigquery-emulator (Thanks @marcoleni).
    Open source →
  23. 0.16.1 09 Nov 2022
    Release notes

    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).
    Open source →
  24. 0.16.0 06 Nov 2022
    Release notes

    Improvement

    Open source →
  25. 0.15.0 03 Nov 2022
    Release notes

    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).
    Open source →
  26. 0.14.0 27 Sep 2022
    Release notes

    Fix

    • Process list - Change numeric_id type from u64 to string (Thanks @kiibo382)
    Open source →
  27. 0.13.0 11 Jul 2022
    Release notes

    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).
    Open source →
  28. 0.12.2 04 Jun 2022
    Release notes

    Improvement

    • Add query_all method to support result pagination (Thanks to @LiHRaM).
    Open source →
  29. 0.12.1 21 May 2022
    Release notes

    Fix

    • Fix dependencies issues (Thanks to @MathiasKindberg).
    • Fix view creation (Thanks to @jeffreybolle).
    Open source →
  30. 0.12.0 17 Apr 2022
    Release notes

    Improvement

    • Replace Chrome by Time.
    Open source →
  31. 0.11.0 03 Jan 2022
    Release notes

    Fix

    • Fix QueryParameter type declaration (Thanks to @newapplesho).
    Open source →
  32. 0.10.2 23 Nov 2021
    Release notes

    Fix

    • Fix 2 issues in the job API (Thanks to @nixxholas).
    Open source →
  33. 0.10.0 11 Oct 2021
    Release notes

    Added

    • 2 features native-tls and rust-tls to respectively use OpenSSL or Rust TLS.
    • Add methods is_empty, len, clear to TableDataInsertAllRequest.
    • Add method add_rows to TableDataInsertAllRequest (thanks @nixxholas).
    • Bump version for yup-oauth2 v6 (thanks @JamesHinshelwood).
    • Implement Default trait for most of the structures in the model sub-directory.
    • Implement Clone trait for most of the structures in the model sub-directory.
    • Implement Display trait for ErrorProto and TableDataInsertAllResponseInsertErrors.
    Open source →
  34. 0.9.3 05 Sep 2021
    Release notes

    Fix

    • Fix ResultSet.get_i64 not working with some valid integer notation (e.g. 123.45E4) (Thanks to @komi1230).
    Open source →
  35. 0.9.2 30 Aug 2021
    Release notes

    Fix

    • Fix Workload identify serialization issue (Thanks to @komi1230).
    Open source →
  36. 0.9.1 17 Aug 2021
    Release notes

    Added

    • Workload identify support (Thanks to @komi1230).
    Open source →
  37. 0.9.0 28 Mar 2021
    Release notes

    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.
    Open source →
  38. 0.8.0 08 Mar 2021

    Nothing published for this version

  39. 0.7.0 07 Mar 2021

    Nothing published for this version

  40. 0.6.0 26 Feb 2021

    Nothing published for this version

  41. 0.5.0 20 Feb 2021

    Nothing published for this version

  42. 0.4.0 20 Feb 2021

    Nothing published for this version

  43. 0.3.0 16 Feb 2021

    Nothing published for this version

  44. 0.2.0 15 Feb 2021

    Nothing published for this version

  45. 0.1.0 14 Feb 2021

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive