> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# KineticaPoolOptions

> KineticaPoolOptions — Kinetica Rust API

[gpudb\_api](https://docs.kinetica.com/content/api/rust/index.md)::<wbr />[sqlx\_support](https://docs.kinetica.com/content/api/rust/sqlx_support/index.md)
[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L344-L356)&#x20;

<pre>`pub struct KineticaPoolOptions { /* private fields */ }`</pre>

Builder for creating Kinetica connection pools with sensible defaults.

## Example

```rust theme={null}
use gpudb_api::sqlx_support::KineticaPoolOptions;
use std::time::Duration;

let pool = KineticaPoolOptions::new()
    .host("localhost")
    .port(5432)
    .username("admin")
    .password("password")
    .database("postgres")
    .max_connections(10)
    .min_connections(2)
    .acquire_timeout(Duration::from_secs(30))
    .connect()
    .await?;
```

## Implementations

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L388-L524)
impl [KineticaPoolOptions](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaPoolOptions.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L390-L392)
pub fn [new](#method.new)() -> Self

Create a new `KineticaPoolOptions` with default settings.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L395-L398)
pub fn [host](#method.host)(self, host: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)) -> Self

Set the host address.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L401-L404)
pub fn [port](#method.port)(self, port: [u16](https://doc.rust-lang.org/1.98.1/std/primitive.u16.html)) -> Self

Set the port (default: 5432).

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L407-L410)
pub fn [username](#method.username)(self, username: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)) -> Self

Set the username for authentication.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L413-L416)
pub fn [password](#method.password)(self, password: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)) -> Self

Set the password for authentication.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L419-L422)
pub fn [database](#method.database)(self, database: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)) -> Self

Set the database name (default: “postgres”).

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L425-L428)
pub fn [max\_connections](#method.max_connections)(self, max: [u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)) -> Self

Set the maximum number of connections in the pool (default: 10).

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L431-L434)
pub fn [min\_connections](#method.min_connections)(self, min: [u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)) -> Self

Set the minimum number of connections to maintain (default: 0).

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L437-L440)
pub fn [acquire\_timeout](#method.acquire_timeout)(self, timeout: [Duration](https://doc.rust-lang.org/1.98.1/core/time/struct.Duration.html)) -> Self

Set the timeout for acquiring a connection from the pool (default: 30s).

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L444-L447)
pub fn [idle\_timeout](#method.idle_timeout)(self, timeout: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<[Duration](https://doc.rust-lang.org/1.98.1/core/time/struct.Duration.html)>) -> Self

Set the idle timeout for connections (default: 600s). Set to `None` to disable idle timeout.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L451-L454)
pub fn [max\_lifetime](#method.max_lifetime)(self, lifetime: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<[Duration](https://doc.rust-lang.org/1.98.1/core/time/struct.Duration.html)>) -> Self

Set the maximum lifetime of connections (default: 1800s). Set to `None` to disable max lifetime.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L457-L460)
pub fn [ssl\_mode](#method.ssl_mode)(self, mode: [SslMode](https://docs.kinetica.com/content/api/rust/sqlx_support/enum.SslMode.md)) -> Self

Set the SSL mode for connections.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L463-L468)
pub fn [connection\_url](#method.connection_url)(\&self) -> [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)

Build the connection URL string.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L471-L487)
pub fn [connect\_options](#method.connect_options)(\&self) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<PgConnectOptions, SqlxError>

Build `PgConnectOptions` from the current settings.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L506-L523)
pub async fn [connect](#method.connect)(\&self) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[KineticaPool](https://docs.kinetica.com/content/api/rust/sqlx_support/type.KineticaPool.md), SqlxError>

Connect and create a connection pool.

##### Example

```rust theme={null}
use gpudb_api::sqlx_support::KineticaPoolOptions;

let pool = KineticaPoolOptions::new()
    .host("localhost")
    .username("admin")
    .password("password")
    .connect()
    .await?;
```

## Trait Implementations

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L343)
impl [Clone](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html) for [KineticaPoolOptions](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaPoolOptions.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L343)
fn [clone](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#tymethod.clone)(\&self) -> [KineticaPoolOptions](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaPoolOptions.md)

Returns a duplicate of the value. [Read more](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#tymethod.clone)

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/142757)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/clone.rs.html#245-247)
fn [clone\_from](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#method.clone_from)(\&mut self, source: \&Self)

Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#method.clone_from)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L343)
impl [Debug](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html) for [KineticaPoolOptions](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaPoolOptions.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L343)
fn [fmt](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html#tymethod.fmt)(\&self, f: \&mut [Formatter](https://doc.rust-lang.org/1.98.1/core/fmt/struct.Formatter.html)\<'\_>) -> [Result](https://doc.rust-lang.org/1.98.1/core/fmt/type.Result.html)

Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html#tymethod.fmt)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L370-L386)
impl [Default](https://doc.rust-lang.org/1.98.1/core/default/trait.Default.html) for [KineticaPoolOptions](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaPoolOptions.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L371-L385)
fn [default](https://doc.rust-lang.org/1.98.1/core/default/trait.Default.html#tymethod.default)() -> Self

Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/1.98.1/core/default/trait.Default.html#tymethod.default)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.