Choose a Driver
|
Preview | Unofficial | For review only |
Cassandra drivers handle the details that matter most to application reliability: connection pooling, query routing, token-aware load balancing, prepared statement caching, automatic paging through large result sets, and retry logic. Picking the right driver for your language and workload will save significant integration effort.
See Developer Quickstart to get a running Cassandra instance before wiring up a driver.
Start Here
If you want the shortest path to a working application, use this rule of thumb:
-
JVM application → start with the Apache Cassandra Java Driver.
-
Python application or script → start with the Apache Cassandra Python Driver.
-
Lean Go service → use gocql if you want a small, direct driver with a simple API.
The matrix below is for comparing driver features after you know your language. If you are new to Cassandra, choose the driver that matches your runtime first and optimize for ergonomics second.
Recommended Drivers by Language
Java
Apache Cassandra Java Driver (apache/cassandra-java-driver) is the official Apache project driver. It is the most feature-complete driver available, covers all Cassandra protocol versions, and is maintained by contributors who also work on the server. Use it for any JVM-based application (Java, Kotlin, Groovy).
Python
Apache Cassandra Python Driver (apache/cassandra-python-driver) is the most widely used Python driver. It supports synchronous and async I/O, prepared statements, and token-aware routing. The Async Python Cassandra Client is an alternative if you need a purely asyncio-native interface.
Go
gocql (gocql/gocql) is the community-standard Go driver. It is well-maintained, widely deployed, and integrates with the Cassandra native protocol directly. Use it for microservices and cloud-native Go workloads.
Node.js
Apache Cassandra Node.js Driver (apache/cassandra-nodejs-driver) is the most complete Node.js driver. It supports all major driver features including speculative execution, automatic paging, and prepared statements.
Rust
scylla-rust-driver (scylladb/scylla-rust-driver) is an async Rust driver that works with both Scylla and Apache Cassandra. It is actively developed and well-suited for high-throughput, low-latency Rust services.
C#/.NET
Apache Cassandra C# Driver (apache/cassandra-csharp-driver) is the primary .NET driver. It targets .NET Standard and supports async/await patterns, LINQ integration, and object mapping.
Feature Matrix
| Language | Driver | Maintainer | Prepared Statements | Async API | Auto Paging | Token-Aware Routing | Speculative Execution |
|---|---|---|---|---|---|---|---|
Java |
Apache |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Python |
Apache |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Go |
Community |
Yes |
Yes |
Yes |
Yes |
No |
|
Node.js |
Apache |
Yes |
Yes |
Yes |
Yes |
Yes |
|
C#/.NET |
Apache |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Rust |
ScyllaDB |
Yes |
Yes |
Yes |
Yes |
No |
Cassandra 6 Notes By Driver
| Driver | Cassandra 6 guidance in this workzone | Practical note |
|---|---|---|
Java |
Full quickstart plus references to |
Best-documented path in this workzone for teams evaluating newer Cassandra 6 features |
Python |
Full quickstart plus references to |
Good beginner path if you want short application examples and scripting-friendly tooling |
Go |
Full quickstart plus links to Cassandra 6 feature docs |
CRUD examples are covered here, but confirm your chosen |
Node.js |
Full quickstart plus references to |
Good fit when you want prepared statements, paging, and token-aware routing from a JavaScript service |
Which Driver Should I Use?
Not sure where to start? Use these rules of thumb:
-
New to Cassandra? Start with the Java or Python driver. Both have the clearest getting-started material and the most examples for common application patterns.
-
Building a backend service? Java, Python, and Go are the safest defaults. Pick the one your team already knows unless you have a strong reason to optimize for runtime footprint.
-
Building microservices or cloud-native services? Go (gocql) and Rust (scylla-rust-driver) have minimal footprints and excellent async performance.
-
Enterprise .NET shop? The Apache Cassandra C# driver supports .NET Standard and integrates with common enterprise patterns.
-
Full-stack JavaScript? The Apache Cassandra Node.js driver covers both backend Node.js services and server-side rendering frameworks.
-
JVM but not Java? The Java driver works from any JVM language. Kotlin and Scala users often wrap it directly.
For data modeling guidance before writing driver code, see Data Modeling.
What to Look For in a Driver
When evaluating any driver — including community drivers not listed here — check for:
-
Active maintenance and release cadence — look for recent commits, tagged releases, and a responsive issue tracker. A driver that has not been updated in two or more years may lag behind Cassandra protocol changes.
-
Cassandra version compatibility — confirm the driver supports the native protocol version your cluster uses. Cassandra 6 introduces new protocol features; verify the driver changelog explicitly calls out compatibility.
-
Connection pooling and load balancing — production workloads require per-host connection pools and a load balancing policy that respects data-center locality.
-
Retry and speculative execution — transient failures and tail latency are inevitable. Drivers with configurable retry policies and speculative execution allow you to tune resilience without changing application code.
-
Community size and documentation quality — a driver with an active forum presence, Stack Overflow answers, and maintained documentation is easier to debug when things go wrong.
Community and Additional Drivers
The following drivers cover additional languages and runtimes. They are community-maintained and listed here for discoverability, not as primary recommendations.
-
Ruby — Apache Cassandra Ruby Driver
-
**C** -- https://github.com/apache/cassandra-cpp-driver[Apache Cassandra C Driver]
-
JDBC — Cassandra JDBC Wrapper (use with Java applications that require a JDBC interface)
-
Scala — Spark Cassandra Connector, Phantom, Quill
-
Clojure — Alia, Cassaforte
-
Haskell — Cassy
-
Dart — dart_cassandra_cql
Getting Help
Driver-specific issues are best handled through the driver’s own channels:
-
GitHub Issues — open an issue in the driver’s repository for bugs, feature requests, and compatibility questions. Link your Cassandra version and driver version in the report.
-
ASF Mailing Lists — the user@cassandra.apache.org">user@cassandra.apache.org list covers general usage questions including driver integration.
-
Stack Overflow — the cassandra and cql tags have broad community coverage for driver integration patterns.
-
Driver documentation — each recommended driver above maintains its own Getting Started guide and API reference; these are the most authoritative source for driver-specific configuration options.
For application-level troubleshooting, see Developer Troubleshooting.