{"id":13672148,"url":"https://github.com/scylladb/scylla-rust-driver","last_synced_at":"2025-05-13T21:07:33.421Z","repository":{"id":37040854,"uuid":"305989099","full_name":"scylladb/scylla-rust-driver","owner":"scylladb","description":"Async CQL driver for Rust, optimized for ScyllaDB!","archived":false,"fork":false,"pushed_at":"2025-05-07T08:04:23.000Z","size":7402,"stargazers_count":629,"open_issues_count":149,"forks_count":130,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-05-07T08:32:06.973Z","etag":null,"topics":["cql","driver","rust","scylladb"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scylladb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-10-21T10:31:55.000Z","updated_at":"2025-05-07T08:04:29.000Z","dependencies_parsed_at":"2023-10-26T11:39:05.524Z","dependency_job_id":"9e574209-1376-4e97-bcbb-fd136e432132","html_url":"https://github.com/scylladb/scylla-rust-driver","commit_stats":{"total_commits":1065,"total_committers":52,"mean_commits":20.48076923076923,"dds":0.7981220657276995,"last_synced_commit":"b8711d1e5257a341fe1f84c83dc02564007f7613"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-rust-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-rust-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-rust-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-rust-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scylladb","download_url":"https://codeload.github.com/scylladb/scylla-rust-driver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254028817,"owners_count":22002279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cql","driver","rust","scylladb"],"created_at":"2024-08-02T09:01:27.791Z","updated_at":"2025-05-13T21:07:28.413Z","avatar_url":"https://github.com/scylladb.png","language":"Rust","funding_links":[],"categories":["Rust","Drivers and Libraries"],"sub_categories":["Rust"],"readme":"\u003cimg src=\"https://github.com/scylladb/scylla-rust-driver/raw/main/assets/monster+rust.png\" height=\"150\" align=\"right\"\u003e\n\n# ScyllaDB Rust Driver\n\n[![Crates.io](https://img.shields.io/crates/v/scylla.svg)](https://crates.io/crates/scylla) [![docs.rs](https://docs.rs/scylla/badge.svg)](https://docs.rs/scylla)\n[![minimum rustc version](https://img.shields.io/badge/rustc-1.70-orange.svg)](https://crates.io/crates/scylla)\n\nThis is a client-side driver for [ScyllaDB] written in pure Rust with a fully async API using [Tokio].\nAlthough optimized for ScyllaDB, the driver is also compatible with [Apache Cassandra®].\n\n## Getting Started\nThe [documentation book](https://rust-driver.docs.scylladb.com/stable/index.html) is a good place to get started. Another useful resource is the Rust and Scylla [lesson](https://university.scylladb.com/courses/using-scylla-drivers/lessons/rust-and-scylla-2/) on Scylla University.\n\n## Examples\n```rust\nuse futures::TryStreamExt;\n\nlet uri = \"127.0.0.1:9042\";\n\nlet session: Session = SessionBuilder::new().known_node(uri).build().await?;\n\nlet query_pager = session.query_iter(\"SELECT a, b, c FROM ks.t\", \u0026[]).await?;\nlet mut stream = query_pager.rows_stream::\u003c(i32, i32, String)\u003e()?;\nwhile let Some((a, b, c)) = stream.try_next().await? {\n    println!(\"a, b, c: {}, {}, {}\", a, b, c);\n}\n```\n\nPlease see the full [example](examples/basic.rs) program for more information.\nYou can also run the example as follows if you have a Scylla server running:\n\n```sh\nSCYLLA_URI=\"127.0.0.1:9042\" cargo run --example basic\n```\n\nAll examples are available in the [examples](examples) directory\n\n## Features and Roadmap\n\nThe driver supports the following:\n\n* Asynchronous API\n* Type-safe serialization and deserialization\n* Zero-copy deserialization\n* Derive macros for user struct serialization and deserialization\n* Token-aware routing\n* Shard-aware and Tablet-aware routing (specific to ScyllaDB)\n* Prepared, unprepared and batch statements\n* Query paging - both transparent and manual\n* CachingSession that transparently prepares statements\n* CQL binary protocol version 4\n* Configurable policies:\n    * Load balancing\n    * Retry\n    * Speculative execution\n    * and other (timestamp generation, address translation, host filtering)\n* Execution profiles\n* Driver-side metrics, and query execution history\n* TLS. Both OpenSSL and Rustls are supported\n* Compression (LZ4 and Snappy algorithms)\n* Authentication\n* Cluster metadata access\n* CQL tracing\n\nFor planned future improvements, see our [Milestones].\n\n## Getting Help\n\nWe invite you to discuss any issues and ask questions on the [ScyllaDB Forum] and the `#rust-driver` channel on [ScyllaDB Slack].\n\n## Version support\n\nThe driver is considered production ready, hence its version is not 0.x.\nWe do however acknowledge that the API will surely need some breaking changes in\nthe future, which means it is not our goal to stay on 1.x forever - we will\nrelease new major version in the future.\n\nThe API stability guarantee we provide is that we won't release new major\nversions very often.\nIn case of 2.0, it won't be released earlier than 9 months after release 1.0.\nFor further major versions this duration may be increased.\n\nAfter new major version is released, the previous major version will still\nreceive bugfixes for some time (exact time is yet to be determined), but new\nfeatures will only be developed for the latest major version.\n\n## Supported Rust Versions\n\nOur driver's minimum supported Rust version (MSRV) is 1.80.0.\nChanges to MSRV can only happen in major and minor relases, but not in patch releases.\nWe will not bump MSRV to a Rust version that was released less than 6 months ago.\n\n## Reference Documentation\n\n* [CQL binary protocol] specification version 4\n\n## Other Drivers\n\n* [cdrs-tokio]: Apache Cassandra driver written in pure Rust.\n* [cassandra-rs]: Rust wrappers for the [DataStax C++ driver] for Apache Cassandra.\n\n## License\n\nThis project is licensed under either of\n\n- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0))\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))\n\nat your option.\n\n[ScyllaDB Slack]: http://slack.scylladb.com/\n[ScyllaDB Forum]: https://forum.scylladb.com/\n[Milestones]: https://github.com/scylladb/scylla-rust-driver/milestones\n[Apache Cassandra®]: https://cassandra.apache.org/\n[cdrs-tokio]: https://github.com/krojew/cdrs-tokio\n[CQL binary protocol]: https://github.com/apache/cassandra/blob/trunk/doc/native_protocol_v4.spec\n[DataStax C++ driver]: https://github.com/datastax/cpp-driver/\n[ScyllaDB]: https://www.scylladb.com/\n[Tokio]: https://crates.io/crates/tokio\n[cassandra-rs]: https://github.com/Metaswitch/cassandra-rs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2Fscylla-rust-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscylladb%2Fscylla-rust-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2Fscylla-rust-driver/lists"}