CqlSharp is a high performance, asynchronous Cassandra CQL binary protocol client implementing the ADO.NET data provider interfaces.
It's main features are:
* The API implements the ADO.NET interfaces. If you are familiar with SqlConnection, SqlCommand, and SqlReader, you should be able to use CqlSharp with no difficulty.
* CqlSharp is an implementation of the (new) CQL Binary Protocol and therefore requires Cassandra 1.2 and up
* CqlSharp supports all the binary protocol v2 features: batching, paging, bound query variables, result schema caching, check-and-set (CAS) statements, and sasl-authentication
* Supports fast mapping of objects to query parameters, or query results to objects. Mapping is tunable by decorating your classes via Table and Column attributes.
* Query tracing, timeouts and cancellation is supported
* The API is predominately [asynchronous](https://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx), heavily relying on the System.Threading.Tasks namespace. Synchronous alternatives are available for convenience.
* Configuration is done through connection strings. The simultaneous use of multiple Cassandra clusters is supported.
* Extensive logging, including support for custom logger implementations
See https://github.com/reuzel/CqlSharp/wiki/Features for an extensive feature list.
See the version list below for details.
Install-Package CqlSharp -Version 0.30.1
dotnet add package CqlSharp --version 0.30.1
<PackageReference Include="CqlSharp" Version="0.30.1" />
paket add CqlSharp --version 0.30.1
Version 0.30.1 - Node address fallback
* Fallback to listen-address during discovery when rpc-address is 0.0.0.0. Issue #20
* Performance: Removing some boxing of structs during deserialization
Version 0.30.0 - Binary Protocol V2 support
* Allowing default database to be set via connectionstring, regardless of connectionstrategy in use
* Sasl Authentication support. PasswordAuthenticator is supported out-of-the-box. Extendable via MEF by providing IAuthenticator and IAuthenticatorFactory implementations.
* Batch support via CqlBatchTransaction. Assign the command to the CqlBatchTransaction and executes will be buffered. When CqlBatchTransaction is committed it will create and submit a batch statement.
* Paging support. CqlCommand can be given a page size: when iterating over a query result, the data will be fetched in "chunks" of the given page size
* Use of bound parameters with non-prepared queries
* Support for Serial_Local for CompareAndSet (CAS) statements
* Added CqlConnection.Shutdown methods to close all connections to Cassandra
* Performance: when using Cql protocol v2, cached result metadata will be used, reducing network overhead
* Performance: Prepare() better utilizes caching, less Task creation overhead
* Fix: ChangeDatabase function uses correct use syntax
* Fix: ConnectionStratagies are better aware of existing connections on startup.
See https://github.com/reuzel/CqlSharp/blob/master/ChangeLog.md for the full changelog.
This package has no dependencies.
This package is not used by any popular GitHub repositories.