All Projects → pchalamet → Cassandra Sharp

pchalamet / Cassandra Sharp

Licence: apache-2.0
high performance .NET driver for Apache Cassandra

Projects that are alternatives of or similar to Cassandra Sharp

Cqerl
Native Erlang CQL client for Cassandra
Stars: ✭ 201 (+76.32%)
Mutual labels:  cassandra, driver
Gocql
Package gocql implements a fast and robust Cassandra client for the Go programming language.
Stars: ✭ 2,182 (+1814.04%)
Mutual labels:  cassandra, driver
Phpfastcache
A high-performance backend cache system. It is intended for use in speeding up dynamic web applications by alleviating database load. Well implemented, it can drops the database load to almost nothing, yielding faster page load times for users, better resource utilization. It is simple yet powerful.
Stars: ✭ 2,171 (+1804.39%)
Mutual labels:  cassandra, driver
cdrs-tokio
High-level async Cassandra client written in 100% Rust.
Stars: ✭ 54 (-52.63%)
Mutual labels:  cassandra, driver
Cdrs
Cassandra DB native client written in Rust language. Find 1.x versions on https://github.com/AlexPikalov/cdrs/tree/v.1.x Looking for an async version? - Check WIP https://github.com/AlexPikalov/cdrs-async
Stars: ✭ 314 (+175.44%)
Mutual labels:  cassandra, driver
Nodejs Driver
DataStax Node.js Driver for Apache Cassandra
Stars: ✭ 1,074 (+842.11%)
Mutual labels:  cassandra, driver
Csharp Driver
DataStax C# Driver for Apache Cassandra
Stars: ✭ 477 (+318.42%)
Mutual labels:  cassandra, driver
Erlcass
High-Performance Erlang Cassandra driver based on DataStax cpp-driver
Stars: ✭ 59 (-48.25%)
Mutual labels:  cassandra, driver
Babel Plugin Mobx Deep Action
Reduces `action` and `runInAction` boilerplates
Stars: ✭ 110 (-3.51%)
Mutual labels:  async
Async Backplane
Simple, Erlang-inspired fault-tolerance framework for Rust Futures.
Stars: ✭ 113 (-0.88%)
Mutual labels:  async
Aiometer
A Python concurrency scheduling library, compatible with asyncio and trio.
Stars: ✭ 110 (-3.51%)
Mutual labels:  async
Ws Machine
WS-Machine is a websocket finite state machine for client websocket connections (Go)
Stars: ✭ 110 (-3.51%)
Mutual labels:  async
Wfpstarterkit
An example driver for Windows that shows how to set-up some basic components of the Windows Filtering Platform
Stars: ✭ 113 (-0.88%)
Mutual labels:  driver
Go Sonic
Sonic driver written in Go.
Stars: ✭ 110 (-3.51%)
Mutual labels:  driver
Drone
CLI utility for Drone, an Embedded Operating System.
Stars: ✭ 114 (+0%)
Mutual labels:  async
Tedis
redis client with typescript and esnext for nodejs
Stars: ✭ 109 (-4.39%)
Mutual labels:  async
Snug
Write reusable web API interactions
Stars: ✭ 108 (-5.26%)
Mutual labels:  async
Nuclei
Proactive IO & Runtime system
Stars: ✭ 113 (-0.88%)
Mutual labels:  async
Madelineproto
Async PHP client/server API for the telegram MTProto protocol
Stars: ✭ 1,776 (+1457.89%)
Mutual labels:  async
Tl Wn722n V2
Drivers for TP-LINK TL-WN722N version 2 .Clean ported for kernel 4.4, 4.8, 4.10 ,4.13 ,4.14 & 4.15 from source which was at 4.3
Stars: ✭ 112 (-1.75%)
Mutual labels:  driver

cassandra-sharp - high performance .NET driver for Apache Cassandra

build status

The philosophy of cassandra-sharp is to be really simple and fast: no Linq provider, no complex API. Just CQL, simple object mapping and great performance :)

With version 4, cassandra-sharp is only speaking native protocol 4 - basically, this means you are required to use Cassandra 3.

cassandra-sharp supports async operations exposed as Rx subscriptions or TPL tasks. Efficient memory usage can be achieve using the push model of Rx.

A command line tool is also available (cqlplus) to access a Cassandra cluster. It's also a great tool to understand what's happening under the cover.

Getting binaries

Binaries are available through NuGet : http://www.nuget.org/packages/cassandra-sharp

Copyright & License

cassandra-sharp - high performance .NET driver for Apache Cassandra
Copyright (c) 2011-2017 Pierre Chalamet

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
 
http://www.apache.org/licenses/LICENSE-2.0
 
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Features

  • async operations (TPL tasks / Rx subscriptions)
  • Rx interface (IObservable / IObserver) for result streaming
  • TPL Task for future operations
  • Linq friendly
  • extensible rowset mapping (poco and map provided out of the box)
  • blazing fast object marshaler (dynamic gen'ed code)
  • robust connection handling (connection recovery supported)
  • ability to understand performance issues (client and server side)
  • multiple extension points
  • command line tool (cqlplus)
  • .NET 4.0+ support (Microsoft .NET / Mono)

How to build

To build cassandra-sharp, load cassandra-sharp.sln in Visual Studio 2017. To build from command line and to regenerate thrift proxy, use Build.cmd.

Sample configuration

<configSections>
	<section name="CassandraSharp" type="CassandraSharp.SectionHandler, CassandraSharp.Interfaces" />
</configSections>

<CassandraSharp>
	<Cluster name="TestCassandra">
		<Endpoints>
			<Server>localhost</Server>
		</Endpoints>
	</Cluster>
</CassandraSharp>

Sample client

public class SchemaKeyspaces
{
    public string KeyspaceName { get; set; }
    public bool DurableWrites { get; set; }
    public Dictionary<string, string> Replication { get; set; }
}
	
public static class Sample
{
    private static void DisplayKeyspace(SchemaKeyspaces ks)
    {
        Console.WriteLine("KeyspaceName={0} DurableWrites={1} Class={2} ReplicationFactor={3}",
                          ks.KeyspaceName,
                          ks.DurableWrites,
                          ks.Replication["class"],
                          ks.Replication["replication_factor"]);
    }
	
    public static async Task QueryKeyspaces()
    {
        XmlConfigurator.Configure();
        using (ICluster cluster = ClusterManager.GetCluster("TestCassandra"))
        {
            var cmd = cluster.CreatePocoCommand();
            const string cqlKeyspaces = "SELECT * from system_schema.keyspaces";

            // async operation with streaming
            cmd.WithConsistencyLevel(ConsistencyLevel.ONE)
               .Execute<SchemaKeyspaces>(cqlKeyspaces)
               .Subscribe(DisplayKeyspace);

            // future
            var kss = await cmd.Execute<SchemaKeyspaces>(cqlKeyspaces).AsFuture();
            foreach (var ks in kss)
                DisplayKeyspace(ks);
        }

        ClusterManager.Shutdown();
    }
}

Thanks

JetBrains provided a free licence of Resharper for the cassandra-sharp project. Big thanks for the awesome product. ReSharper

This projects also relies on the following third parties:

Thanks to all contributors for ideas, bug fix and feedbacks!

githalytics.com alpha

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].