Skip to content

martinmolin/skytable-dotnet

Repository files navigation

Skytable client for .NET

This library is a work in progress. Usable but not battle tested. Be wary of breaking changes. See TODO

Introduction

The .NET driver for Skytable is a client driver for the free and open source NoSQL database Skytable ported from the official Skytable client. First, go ahead and install Skytable by following the instructions here. This library supports all Skytable versions that work with the Skyhash 1.1 Protocol. This version of the library was tested with the latest Skytable release (release 0.7.1).

Using this library

Once you have Skytable installed and running, you're ready to try the example!

Example usage:

using System;
using Skytable.Client;

class Person : Skyhash
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var setPerson = new Person();
        setPerson.Name = "John Doe";
        setPerson.Age = 30;

        var connection = new Connection("127.0.0.1", 2003);
        connection.Connect();

        // Serializes and stores the Person as a JSON string in Key `P`.
        // Result is a SkyResult<Element> containing a ResponseCode which indicates the result of the action.
        var setResult = connection.Set("P", setPerson);

        // Contains a SkyResult<Person> deserialized from the JSON string retrieved with the Key `P`.
        var getResult = connection.Get<Person>("P");
    }
}

Keep in mind that you can always set up your own custom queries to perform other queries than SET/GET, see the projects in Examples for more details on how to use this library.

TODO:

  • Examples
    • TLS ConnectionBuilder Example
  • Create Benchmark project
  • Set up Releases
    • Set up GHA
    • Set up nuget
  • Add TLS support (Can connect over TLS but certificate validation might not be secure)
  • Parse element types
    • RECURSIVE ARRAYS
  • Pipelined queries
  • Actions
    • DBSIZE
    • DEL
    • EXISTS
    • FLUSHDB
    • GET
    • HEYA
    • SET
    • KEYLEN
    • LSKEYS
    • MGET
    • MKSNAP
    • MSET
    • MUPDATE
    • POP
    • SDEL
    • SET
    • SSET
    • SUPDATE
    • UPDATE
    • USET
  • DDL
    • CREATE
    • USE
    • INSPECT
    • DROP
  • Tests
    • Queries
    • Parser

Contributing

Feel free to contribute by creating Issues to report bugs or wanted features. Enjoy!

About

Skytable client for .NET

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages