Was this page helpful?
Caution
You're viewing documentation for an unstable version of Scylla Rust Driver. Switch to the latest stable version.
Now everything is ready to use the driver. Here is a small example:
use scylla::{IntoTypedRows, Session, SessionBuilder};
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// Create a new Session which connects to node at 127.0.0.1:9042
// (or SCYLLA_URI if specified)
let uri = std::env::var("SCYLLA_URI")
.unwrap_or_else(|_| "127.0.0.1:9042".to_string());
let session: Session = SessionBuilder::new()
.known_node(uri)
.build()
.await?;
// Create an example keyspace and table
session
.query(
"CREATE KEYSPACE IF NOT EXISTS ks WITH REPLICATION = \
{'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1}",
&[],
)
.await?;
session
.query(
"CREATE TABLE IF NOT EXISTS ks.extab (a int primary key)",
&[],
)
.await?;
// Insert a value into the table
let to_insert: i32 = 12345;
session
.query("INSERT INTO ks.extab (a) VALUES(?)", (to_insert,))
.await?;
// Query rows from the table and print them
if let Some(rows) = session.query("SELECT a FROM ks.extab", &[]).await?.rows {
// Parse each row as a tuple containing single i32
for row in rows.into_typed::<(i32,)>() {
let read_row: (i32,) = row?;
println!("Read a value from row: {}", read_row.0);
}
}
Ok(())
}
Was this page helpful?