Categorygithub.com/scylladb/scylla-go-driver
repositorypackage
0.0.0-20221013134735-ce81923df69a
Repository: https://github.com/scylladb/scylla-go-driver.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

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