# ScyllaDB Rust Driver > ScyllaDB Driver for Rust. 2026, ScyllaDB. All rights reserved. ## Pages - [ScyllaDB Rust Driver](https://rust-driver.docs.scylladb.com/main/index.md): This book contains documentation for [scylla-rust-driver](https://github.com/scylladb/scylla-rust-dr... - [Adjusting code to changes in serialization API introduced in 0.11](https://rust-driver.docs.scylladb.com/main/migration-guides/0.11-serialization.md): When executing a statement through the CQL protocol, values for the bind markers are sent in a seria... - [Adjusting code to changes in deserialization API introduced in 0.15](https://rust-driver.docs.scylladb.com/main/migration-guides/0.15-deserialization.md): In 0.15, a new deserialization API has been introduced. The new API improves type safety and perform... - [Authentication](https://rust-driver.docs.scylladb.com/main/connecting/authentication.md): Driver supports both authentication by username and password and custom authentication defined by a ... - [Tracing a simple/prepared/batch query](https://rust-driver.docs.scylladb.com/main/tracing/basic.md): [Unprepared statement](https://rust-driver.docs.scylladb.com/main/statements/unprepared.md), [prepar... - [Batch statement](https://rust-driver.docs.scylladb.com/main/statements/batch.md): A batch statement allows to execute many data-modifying statements at once.
- [Blob](https://rust-driver.docs.scylladb.com/main/data-types/blob.md): `Blob` is represented as one of: - [Client Routes (Private Networking)](https://rust-driver.docs.scylladb.com/main/connecting/client-routes.md): When connecting to ScyllaDB Cloud clusters via private networking (e.g. AWS PrivateLink or - [List, Set, Map](https://rust-driver.docs.scylladb.com/main/data-types/collections.md): `List` is represented as `Vec` - [Compression](https://rust-driver.docs.scylladb.com/main/connecting/compression.md): By default the driver does not use any compression on connections.
- [Connecting to the cluster](https://rust-driver.docs.scylladb.com/main/connecting/connecting.md): ScyllaDB is a distributed database, which means that it operates on multiple nodes running independe... - [Contents](https://rust-driver.docs.scylladb.com/main/contents.md): Page content - [Counter](https://rust-driver.docs.scylladb.com/main/data-types/counter.md): `Counter` is represented as `struct Counter(pub i64)`
- [Creating a profile and setting it](https://rust-driver.docs.scylladb.com/main/execution-profiles/create-and-use.md): To create an `ExecutionProfile` and attach it as default for `Session`: - [Creating a project](https://rust-driver.docs.scylladb.com/main/quickstart/create-project.md): To create a new project run: - [Data Types](https://rust-driver.docs.scylladb.com/main/data-types/data-types.md): The driver maps database data types to matching Rust types - [Date](https://rust-driver.docs.scylladb.com/main/data-types/date.md): Depending on feature flags, three different types can be used to interact with date. - [Decimal](https://rust-driver.docs.scylladb.com/main/data-types/decimal.md): `Decimal` is represented as `value::CqlDecimal` or [`bigdecimal::BigDecimal`](https://docs.rs/bigdec... - [DefaultPolicy](https://rust-driver.docs.scylladb.com/main/load-balancing/default-policy.md): `DefaultPolicy` is the default load balancing policy in ScyllaDB Rust Driver. It - [Default retry policy](https://rust-driver.docs.scylladb.com/main/retry-policy/default.md): This is the retry policy used by default. It retries when there is a high chance that it might help.... - [Downgrading consistency retry policy](https://rust-driver.docs.scylladb.com/main/retry-policy/downgrading-consistency.md): A retry policy that sometimes retries with a lower consistency level than the one initially - [Duration](https://rust-driver.docs.scylladb.com/main/data-types/duration.md): `Duration` is represented as [`CqlDuration`](https://docs.rs/scylla/latest/scylla/value/struct.CqlDu... - [Connecting and running a simple query](https://rust-driver.docs.scylladb.com/main/quickstart/example.md): Now everything is ready to use the driver. - [Execution profiles](https://rust-driver.docs.scylladb.com/main/execution-profiles/execution-profiles.md): Execution profiles are a way to group various query execution configuration options together. Profil... - [Fallthrough retry policy](https://rust-driver.docs.scylladb.com/main/retry-policy/fallthrough.md): The `FalthroughRetryPolicy` never retries, returns errors straight to the user. Useful for debugging... - [Inet](https://rust-driver.docs.scylladb.com/main/data-types/inet.md): `Inet` is represented as `std::net::IpAddr` - [Load balancing](https://rust-driver.docs.scylladb.com/main/load-balancing/load-balancing.md): The driver uses a load balancing policy to determine which node(s) and shard(s) - [Logging](https://rust-driver.docs.scylladb.com/main/logging/logging.md): The driver uses the [tracing](https://github.com/tokio-rs/tracing) crate for all logs.
- [Lightweight transaction (LWT) statement](https://rust-driver.docs.scylladb.com/main/statements/lwt.md): A lightweight transaction statement can be expressed just like any other statement, via `Session`, w... - [All options supported by a profile](https://rust-driver.docs.scylladb.com/main/execution-profiles/maximal-example.md): `ExecutionProfile` supports all the following options: - [Driver metrics](https://rust-driver.docs.scylladb.com/main/metrics/metrics.md): This feature is available only under the crate feature `metrics`. - [Migration guides](https://rust-driver.docs.scylladb.com/main/migration-guides/migration-guides.md): - [Serialization changes in version 0.11](https://rust-driver.docs.scylladb.com/main/migration-guide... - [Tracing a paged query](https://rust-driver.docs.scylladb.com/main/tracing/paged.md): A paged query performs multiple simple/prepared queries to query subsequent pages.
- [Paged query](https://rust-driver.docs.scylladb.com/main/statements/paged.md): Sometimes query results might be so big that one prefers not to fetch them all at once, - [Percentile speculative execution](https://rust-driver.docs.scylladb.com/main/speculative-execution/percentile.md): This policy has access to `Metrics` shared with session, and triggers - [Tracing `Session::prepare`](https://rust-driver.docs.scylladb.com/main/tracing/prepare.md): `Session::prepare` prepares a query on all connections. If tracing is enabled for the `Query` to pre... - [Prepared statement](https://rust-driver.docs.scylladb.com/main/statements/prepared.md): Prepared statements provide much better performance than unprepared statements, - [Bool, Tinyint, Smallint, Int, Bigint, Float, Double](https://rust-driver.docs.scylladb.com/main/data-types/primitive.md): `Bool` is represented as rust `bool` - [Priorities of execution settings](https://rust-driver.docs.scylladb.com/main/execution-profiles/priority.md): You always have a default execution profile set for the `Session`, either the default one or overrid... - [Query Execution History](https://rust-driver.docs.scylladb.com/main/tracing/query-history.md): The driver allows to collect history of query execution.
- [Quick Start](https://rust-driver.docs.scylladb.com/main/quickstart/quickstart.md): In this chapter we will set up a Rust project and run a few simple queries. - [Remapping execution profile handles](https://rust-driver.docs.scylladb.com/main/execution-profiles/remap.md): `ExecutionProfileHandle`s can be remapped to another `ExecutionProfile`, and the change affects all ... - [Query result](https://rust-driver.docs.scylladb.com/main/statements/result.md): `Session::query_unpaged`, `Session::query_single_page`, `Session::execute_unpaged` and `Session::exe... - [Retry policy configuration](https://rust-driver.docs.scylladb.com/main/retry-policy/retry-policy.md): After a query fails the driver might decide to retry it based on its `Retry Policy` and the query it... - [Schema agreement](https://rust-driver.docs.scylladb.com/main/statements/schema-agreement.md): Sometimes after executing CQL statements some nodes have not been updated, so we need a mechanism th... - [Schema](https://rust-driver.docs.scylladb.com/main/schema/schema.md): The driver is capable of fetching database schema and presenting it to its users. - [Running ScyllaDB using Docker](https://rust-driver.docs.scylladb.com/main/quickstart/scylla-docker.md): To make queries we will need a running ScyllaDB instance. The easiest way is to use a [Docker](https... - [Simple speculative execution](https://rust-driver.docs.scylladb.com/main/speculative-execution/simple.md): The easiest speculative execution policy available. It starts another - [Speculative execution](https://rust-driver.docs.scylladb.com/main/speculative-execution/speculative.md): Speculative query execution is an optimization technique where a driver - [Executing CQL statements - best practices](https://rust-driver.docs.scylladb.com/main/statements/statements.md): Driver supports all kinds of statements supported by ScyllaDB. The following tables aim to bridge be... - [Ascii, Text, Varchar](https://rust-driver.docs.scylladb.com/main/data-types/text.md): `Ascii`, `Text` and `Varchar` are represented as any of: `&str`, `String`, `Box`, `Arc`. - [Time](https://rust-driver.docs.scylladb.com/main/data-types/time.md): Depending on feature flags used, three different types can be used to interact with time. - [Request timeouts](https://rust-driver.docs.scylladb.com/main/statements/timeouts.md): CQL statement execution time can be limited by setting a request timeout. If request does not comple... - [Timestamp generators](https://rust-driver.docs.scylladb.com/main/statements/timestamp-generators.md): If you want to generate timestamps on the client side you can provide - [Timestamp](https://rust-driver.docs.scylladb.com/main/data-types/timestamp.md): Depending on feature flags, three different types can be used to interact with timestamps. - [Timeuuid](https://rust-driver.docs.scylladb.com/main/data-types/timeuuid.md): The `Timeuuid` type is represented as `value::CqlTimeuuid`. - [TLS](https://rust-driver.docs.scylladb.com/main/connecting/tls.md): Driver uses either the - [Query tracing](https://rust-driver.docs.scylladb.com/main/tracing/tracing.md): The driver has utilities for monitoring the execution of queries. - [Tuple](https://rust-driver.docs.scylladb.com/main/data-types/tuple.md): `Tuple` is represented as rust tuples of max 16 elements. - [User defined types](https://rust-driver.docs.scylladb.com/main/data-types/udt.md): ScyllaDB allows users to define their own data types with named fields (See [the official documentat... - [Unprepared statement](https://rust-driver.docs.scylladb.com/main/statements/unprepared.md): Unprepared statement takes CQL statement text and values and simply executes them on a `Session`: - [USE keyspace](https://rust-driver.docs.scylladb.com/main/statements/usekeyspace.md): Using a keyspace allows to omit keyspace name in statements. - [Uuid](https://rust-driver.docs.scylladb.com/main/data-types/uuid.md): `Uuid` is represented as `uuid::Uuid`. - [Statement values](https://rust-driver.docs.scylladb.com/main/statements/values.md): Statement text is constant, but the values may change. - [Varint](https://rust-driver.docs.scylladb.com/main/data-types/varint.md): `Varint` is represented as `value::CqlVarint` or [`num_bigint::BigInt`](https://docs.rs/num-bigint/0... - [Vector](https://rust-driver.docs.scylladb.com/main/data-types/vector.md): `Vector` is represented as `Vec` --- For more comprehensive documentation, see [llms-full.txt](https://rust-driver.docs.scylladb.com/main/llms-full.txt)