https://github.com/scylladb/scylla-go-driver
Experimental, high performance Scylla Driver, University of Warsaw students' project
https://github.com/scylladb/scylla-go-driver
driver golang performance scylladb
Last synced: 2 months ago
JSON representation
Experimental, high performance Scylla Driver, University of Warsaw students' project
- Host: GitHub
- URL: https://github.com/scylladb/scylla-go-driver
- Owner: scylladb
- License: apache-2.0
- Created: 2021-10-18T07:34:34.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-13T13:47:36.000Z (over 2 years ago)
- Last Synced: 2025-03-25T11:03:38.364Z (3 months ago)
- Topics: driver, golang, performance, scylladb
- Language: Go
- Homepage:
- Size: 431 KB
- Stars: 154
- Watchers: 15
- Forks: 7
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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
```go
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](examples/basic.go) program for more information.
All examples are available in the [examples](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 benchmarksMissing 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
* [CQL binary protocol] specification version 4
## License
This project is licensed under [Apache License, Version 2.0](LICENSE)
[CQL binary protocol]: https://github.com/apache/cassandra/blob/trunk/doc/native_protocol_v4.spec
[ScyllaDB]: https://www.scylladb.com/