PackageTrack
Sign in Get early access

postgres

A native, synchronous PostgreSQL client

0.19.14 17M downloads/mo #2286 most downloaded on crates.io rust-postgres/rust-postgres

What this package is like to depend on

Last release 2 months ago

12 Jun 2026

Ships fairly regularly

a new release about every 5 months

Rarely documented

notes for 23 of 104 stable releases

2 versions withdrawn

withdrawn after publishing

12 years old

110 releases · first in 2014

4 releases in the last 12 months

see the full history below

Release timeline

110 releases · Nov 2014 to Jun 2026
2015 2017 2019 2021 2023 2025
Release Pre-release Withdrawn

Releases

latest 60 of 110
  1. 0.19.14 12 Jun 2026
    Release notes

    Changed

    • Updated tokio-postgres to v0.7.18.
    Open source →
    Release notes

    Changed

    • Updated tokio-postgres to v0.7.18.
    Open source →
  2. 0.19.13 30 Mar 2026
    Release notes

    Added

    • Added Client::execute_typed method.
    • Added Client::query_typed_one and Client::query_typed_opt methods.
    • Added GenericClient::execute_typed, GenericClient::query_typed_one, and GenericClient::query_typed_opt methods.
    • Added Transaction::execute_typed, Transaction::query_typed_one, and Transaction::query_typed_opt methods.
    • Added support for bit-vec 0.9 via the with-bit-vec-0_9 feature.

    Changed

    • Upgraded to Rust edition 2024, minimum Rust version 1.85.
    Open source →
    Release notes

    Added

    • Added Client::execute_typed method.
    • Added Client::query_typed_one and Client::query_typed_opt methods.
    • Added GenericClient::execute_typed, GenericClient::query_typed_one, and GenericClient::query_typed_opt methods.
    • Added Transaction::execute_typed, Transaction::query_typed_one, and Transaction::query_typed_opt methods.
    • Added support for bit-vec 0.9 via the with-bit-vec-0_9 feature.

    Changed

    • Upgraded to Rust edition 2024, minimum Rust version 1.85.
    Open source →
  3. 0.19.12 08 Oct 2025
    Release notes

    Added

    • Added Client::check_connection API.

    Changed

    • Improved the effectiveness of Client::is_closed.
    • Disabled default features of futures-util.
    Open source →
  4. 0.19.11 25 Sep 2025
    Release notes

    Added

    • Added support for jiff v0.2.
    • Added support for bit-vec versions v0.7 and v0.8.

    Changed

    • Updated repository links to use rust-postgres organization.
    • Upgraded to Rust 2021 edition.
    Open source →
  5. 0.19.10 02 Feb 2025
    Release notes

    Added

    • Added support for direct TLS negotiation.
    • Added support for cidr 0.3 via the with-cidr-0_3 feature.
    Open source →
  6. 0.19.9 16 Sep 2024
    Release notes

    Added

    • Added support for jiff 0.1 via the with-jiff-01 feature.
    Open source →
  7. 0.19.8 22 Jul 2024
    Release notes

    Added

    • Added {Client, Transaction, GenericClient}::query_typed.
    Open source →
  8. 0.19.7 25 Aug 2023

    Nothing published for this version

  9. 0.19.6 20 Aug 2023
    Release notes

    Added

    • Added support for the hostaddr config option to bypass DNS lookups.
    • Added support for the load_balance_hosts config option to randomize connection ordering.
    • The user config option now defaults to the executing process's user.
    Open source →
  10. 0.19.5 27 Mar 2023
    Release notes

    Added

    • Added keepalives_interval and keepalives_retries config options.
    • Added the tcp_user_timeout config option.
    • Added RowIter::rows_affected.

    Changed

    • Passing an incorrect number of parameters to a query method now returns an error instead of panicking.
    Open source →
  11. 0.19.4 21 Aug 2022
    Release notes

    Added

    • Added ToSql and FromSql implementations for [u8; N] via the array-impls feature.
    • Added support for smol_str 0.1 via the with-smol_str-01 feature.
    • Added ToSql::encode_format to support text encodings of parameters.
    Open source →
  12. 0.19.3 30 Apr 2022
    Release notes

    Added

    • Added support for uuid 1.0 via the with-uuid-1 feature.
    Open source →
  13. 0.19.2 29 Sep 2021
    Release notes

    Added

    • Added SimpleQueryRow::columns.
    • Added support for eui48 1.0 via the with-eui48-1 feature.
    • Added FromSql and ToSql implementations for arrays via the array-impls feature.
    • Added support for time 0.3 via the with-time-0_3 feature.
    Open source →
  14. 0.19.1 03 Apr 2021
    Release notes

    Added

    • Added support for geo-types 0.7 via with-geo-types-0_7 feature.
    • Added Client::clear_type_cache.
    Open source →
  15. 0.19.0 25 Dec 2020
    Release notes

    Changed

    • Upgraded to tokio-postgres 0.7.
    • Methods taking iterators of ToSql values can now take both &dyn ToSql and T: ToSql values.

    Added

    • Added Client::is_valid which can be used to check that the connection is still alive with a timeout.
    Open source →
  16. 0.18.1 20 Oct 2020
    Release notes

    Fixed

    • Restored the Send implementation for Client.
    Open source →
  17. 0.18.0 17 Oct 2020
    Release notes

    Changed

    • Upgraded to tokio-postgres 0.6.

    Added

    • Added Config::notice_callback, which can be used to provide a custom callback for notices.

    Fixed

    • Fixed client shutdown to explicitly terminate the database session.
    Open source →
  18. 0.17.5 19 Jul 2020
    Release notes

    Fixed

    • Fixed transactions to roll back immediately on drop.
    Open source →
  19. 0.17.4 03 Jul 2020
    Release notes

    Added

    • Added support for geo-types 0.6.
    Open source →
  20. 0.17.3 01 May 2020
    Release notes

    Fixed

    • Errors sent by the server will now be returned from Client methods rather than just being logged.

    Added

    • Added Transaction::savepoint, which can be used to create a savepoint with a custom name.
    • Added Client::notifications, which returns an interface to the notifications sent by the server.
    Open source →
  21. 0.17.2 06 Mar 2020
    Release notes

    Added

    • Added Debug implementations for Client, Row, and Column.
    • Added time 0.2 support.
    Open source →
  22. 0.17.1 01 Feb 2020
    Release notes

    Added

    • Added Client::build_transaction to allow configuration of various transaction options.
    • Added Client::cancel_token, which returns a separate owned object that can be used to cancel queries.
    • Added accessors for Config fields.
    • Added a GenericClient trait implemented for Client and Transaction and covering shared functionality.
    Open source →
  23. 0.17.0 23 Dec 2019
    Release notes

    Changed

    • Each Client now has its own non-threaded tokio Runtime rather than sharing a global threaded Runtime. This significantly improves performance by minimizing context switches and cross-thread synchronization.
    • Client::copy_in now returns a writer rather than taking in a reader.
    • Client::query_raw now returns a named type.
    • Client::copy_in and Client::copy_out no longer take query parameters as PostgreSQL doesn't support them in COPY queries.

    Removed

    • Removed support for uuid 0.7.

    Added

    • Added Client::query_opt for queries that are expected to return zero or one rows.
    • Added binary copy support in the binary_copy module.
    • The fallible-iterator crate is now publicly reexported.
    Open source →
  24. 0.17.0-alpha.2 28 Nov 2019 pre-release
    Release notes

    Changed

    • Changed Config::executor to Config::spawner.

    Added

    • Added support for uuid 0.8.
    • Added Transaction::query_one.
    Open source →
  25. 0.17.0-alpha.1 15 Oct 2019 pre-release
    Release notes

    Changed

    • Updated tokio-postgres to 0.5.0-alpha.1.
    Open source →
  26. 0.16.0-rc.2 30 Jun 2019 pre-release
    Release notes

    Fixed

    • Documentation fixes
    Open source →
  27. 0.16.0-rc.1 07 Apr 2019 pre-release
    Release notes

    Changed

    • Connection has been renamed to Client.

    • The Client type is now a thin wrapper around the tokio-postgres nonblocking client. By default, this is handled transparently by spawning connections onto an internal tokio Runtime, but this can also be controlled explicitly.

    • The ConnectParams type and IntoConnectParams trait have been replaced by a builder-style Config type.

      Before:

      let params = ConnectParams::builder()
          .user("postgres", None)
          .build(Host::Tcp("localhost".to_string()))
          .build();
      let conn = Connection::connect(params, &TlsMode::None)?;
      

      After:

      let client = Client::configure()
          .user("postgres")
          .host("localhost")
          .connect(NoTls)?;
      
    • The TLS connection mode (e.g. prefer) is now part of the connection configuration instead of being passed in separately.

      Before:

      let conn = Connection::connect("postgres://postgres@localhost", &TlsMode::Prefer(connector))?;
      

      After:

      let client = Client::connect("postgres://postgres@localhost?sslmode=prefer", connector)?;
      
    • Client and Transaction methods take &mut self rather than &self, and correct use of the active transaction is verified at compile time rather than runtime.

    • Row no longer borrows any data.

    • Statement is now a "token" which is passed into methods on Client and Transaction and does not borrow the client:

      Before:

      let statement = conn.prepare("SELECT * FROM foo WHERE bar = $1")?;
      let rows = statement.query(&[&1i32])?;
      

      After:

      let statement = client.prepare("SELECT * FROM foo WHERE bar = $1")?;
      let rows = client.query(&statement, &[1i32])?;
      
    • Statement::lazy_query has been replaced with Transaction::bind, which returns a Portal type that can be used with Transaction::query_portal.

    • Statement::copy_in and Statement::copy_out have been moved to Client and Transaction.

    • Client::copy_out and Transaction::copy_out now return a Reader rather than consuming in a Writer.

    • Connection::batch_execute and Transaction::batch_execute have been replaced with Client::simple_query and Transaction::simple_query.

    • The Cargo features enabling ToSql and FromSql implementations for external crates are now versioned. For example, with-uuid is now with-uuid-0_7. This enables us to add support for new major versions of the crates in parallel without breaking backwards compatibility.

    Added

    • Connection string configuration now more fully mirrors libpq's syntax, and supports both URL-style and key-value style strings.
    • FromSql implementations can now borrow from the data buffer. In particular, this means that you can deserialize values as &str. The FromSqlOwned trait can be used as a bound to restrict code to deserializing owned values.
    • Added support for channel binding with SCRAM authentication.
    • Added multi-host support in connection configuration.
    • Added support for simple query requests returning row data.
    • Added variants of query methods which return fallible iterators of values and avoid fully buffering the response in memory.

    Removed

    • The with-openssl and with-native-tls Cargo features have been removed. Use the tokio-postgres-openssl and tokio-postgres-native-tls crates instead.
    • The with-rustc_serialize and with-time Cargo features have been removed. Use serde and SystemTime or chrono instead.
    • The Transaction::set_commit and Transaction::set_rollback methods have been removed. The only way to commit a transaction is to explicitly consume it via Transaction::commit.
    • The Rows type has been removed; methods now return Vec<Row> instead.
    • Connection::prepare_cache has been removed, as Statement is now 'static and can be more easily cached externally.
    • Some other slightly more obscure features have been removed in the initial release. If you depended on them, please file an issue and we can find the right design to add them back!
    Open source →
  28. 0.15.2 12 Feb 2018

    Nothing published for this version

  29. 0.15.1 23 Jul 2017

    Nothing published for this version

  30. 0.15.0 23 Jul 2017

    Nothing published for this version

  31. 0.14.2 11 Jun 2017

    Nothing published for this version

  32. 0.14.1 02 May 2017

    Nothing published for this version

  33. 0.14.0 21 Feb 2017

    Nothing published for this version

  34. 0.13.6 04 Feb 2017

    Nothing published for this version

  35. 0.13.5 13 Jan 2017

    Nothing published for this version

  36. 0.13.4 19 Dec 2016

    Nothing published for this version

  37. 0.13.3 30 Nov 2016

    Nothing published for this version

  38. 0.13.2 27 Nov 2016

    Nothing published for this version

  39. 0.13.1 12 Nov 2016

    Nothing published for this version

  40. 0.13.0 06 Nov 2016

    Nothing published for this version

  41. 0.12.0 10 Oct 2016

    Nothing published for this version

  42. 0.11.12 10 Apr 2017

    Nothing published for this version

  43. 0.11.11 29 Aug 2016

    Nothing published for this version

  44. 0.11.10 05 Aug 2016

    Nothing published for this version

  45. 0.11.9 16 Jun 2016

    Nothing published for this version

  46. 0.11.8 27 May 2016

    Nothing published for this version

  47. 0.11.7 12 Apr 2016

    Nothing published for this version

  48. 0.11.6 31 Mar 2016

    Nothing published for this version

  49. 0.11.5 30 Mar 2016

    Nothing published for this version

  50. 0.11.4 10 Mar 2016

    Nothing published for this version

  51. 0.11.3 18 Feb 2016

    Nothing published for this version

  52. 0.11.2 18 Feb 2016 withdrawn

    Nothing published for this version

  53. 0.11.1 01 Feb 2016

    Nothing published for this version

  54. 0.11.0 03 Jan 2016

    Nothing published for this version

  55. 0.10.2 03 Dec 2015

    Nothing published for this version

  56. 0.10.1 08 Nov 2015

    Nothing published for this version

  57. 0.10.0 19 Sep 2015

    Nothing published for this version

  58. 0.9.6 29 Aug 2015

    Nothing published for this version

  59. 0.9.5 04 Aug 2015

    Nothing published for this version

  60. 0.9.4 31 Jul 2015

    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