Awesome
C++ driver for Cassandra/Scylla based on seastar framework
This is a cassandra/scylla driver written in c++ based on seastar framework, it's fast and easy to use.<br/> For seastar framework please see here.<br/> It's new and has not been extensively tested, you should use it carefully.<br/>
Features
- Futures based API
- Connection pooling
- Connection multiplexing
- Automatic retry
- Load balancing
- Authentication
- SSL
- Batch operation
- Preparation
- Compression
Documents
- Hello World
- Configuration
- Query
- Execute
- Batch Execute
- Prepare
- Column Types
- Logging
- Metrics
- Benchmark
Install from ubuntu ppa
Supported version: 18.04 (bionic)
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:compiv/cpv-project
sudo apt-get update
sudo apt-get install cqldriver
In addition, you have to install gcc-9 because the seastar package is built with it.
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get install g++-9
Install from source
Before build the source code of this project you should:
- install seastar on system
- install gcc 9 if you're using seastar package from ppa
- ensure
pkg-config --cflags seastar
works - ensure
pkg-config --libs seastar
works
mkdir -p build/cqldriver-custom
cd build/cqldriver-custom
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_C_COMPILER=gcc-9 \
-DCMAKE_CXX_COMPILER=g++-9 \
../../src
make V=1
make install V=1
Build and run hello world example
Please check run.sh for the complete build command, and check the documents for more information.
cd examples/HelloWorld
sh run.sh
Running tests
Please check travis_run_tests.sh, tests are written with google test and require 3 scylla or cassandra instances to work.
Contribution
You should follow these rules when contributing code, pull request or patch is welcome.
- Use tabs instead of spaces
- For class names, use camel case and start with a upper case (e.g. SomeClass)
- For function names, use camel case and start with a lower case (e.g. someFunction)
- For local variable names, use camel case and start with a lower case (e.g. someInt)
- For global variable names, use camel case and start with a upper case (e.g. SomeGlobalValue)
- For class member names, use camel case and start with a lower case and ends with
_
(e.g. someMember_) - Write comments for every public class and function, keep the code as simple as possible
License
LICENSE: MIT LICENSE<br/> Copyright © 2017-2019 303248153@github<br/> If you have any license issue please contact 303248153@qq.com.