Skip to content

Experimental, high performance Scylla Driver, University of Warsaw students' project

License

Notifications You must be signed in to change notification settings

scylladb/scylla-go-driver

Repository files navigation

ScyllaDB Go Driver

This is a high-performance client-side driver for ScyllaDB written in pure Go.

Note: this driver is currently in alpha. Bug reports and pull requests are welcome!

Installation

go get github.com/scylladb/scylla-go-driver

Examples

ctx := context.Background()

cfg := scylla.DefaultSessionConfig("exampleks", "192.168.100.100")
session, err := scylla.NewSession(ctx, cfg)
if err != nil {
	return err
}
defer session.Close()

requestCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()

q, err := session.Prepare(requestCtx, "SELECT id, name FROM exampleks.names WHERE id=?")
if err != nil {
	return err
}

res, err := q.BindInt64(0, 64).Exec(requestCtx)

Please see the full example program for more information.

All examples are available in the examples directory

Features and Roadmap

The driver supports the following:

  • Session and query context support
  • Token-aware routing
  • Shard-aware routing (specific to ScyllaDB)
  • Prepared statements
  • Query paging
  • CQL binary protocol version 4
  • Configurable load balancing policies
  • Configurable retry policies
  • TLS support
  • Authentication support
  • Compression (LZ4 and Snappy algorithms)

Ongoing efforts:

  • Gocql drop-in replacement
  • More tests
  • More benchmarks

Missing features:

  • Cassandra support
  • Batch statements
  • Full CQL Events Support
  • Support for all CQL types (Generic binding)
  • Speculative Execution
  • CQL tracing
  • Automatic node status updating
  • Caching prepared statements
  • Non-default keyspace token-aware query routing

Supported Go Versions

Our driver's minimum supported Go version is 1.18

Reference Documentation

License

This project is licensed under Apache License, Version 2.0

About

Experimental, high performance Scylla Driver, University of Warsaw students' project

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages