Crate skytable[][src]

Expand description

Skytable client

This library is the official client for the free and open-source NoSQL database Skytable. First, go ahead and install Skytable by following the instructions here. This library supports all Skytable versions that work with the Skyhash 1.0 Protocol. This version of the library was tested with the latest Skytable release (release 0.6).

Using this library

This library only ships with the bare minimum that is required for interacting with Skytable. Once you have Skytable installed and running, you’re ready to follow this guide!

We’ll start by creating a new binary application and then running actions. Create a new binary application by running:

cargo new skyapp

Tip: You can see a full list of the available actions here.

First add this to your Cargo.toml file:

skytable = "0.3.0-alpha.2"

Now open up your src/main.rs file and establish a connection to the server while also adding some imports:

use skytable::{Connection, Query, Response, Element};
fn main() -> std::io::Result<()> {
    let mut con = Connection::new("127.0.0.1", 2003)?;
    Ok(())
}

Now let’s run a Query! Change the previous code block to:

use skytable::{Connection, Query, Response, Element};
fn main() -> std::io::Result<()> {
    let mut con = Connection::new("127.0.0.1", 2003)?;
    let query = Query::from("heya");
    let res = con.run_simple_query(&query)?;
    assert_eq!(res, Response::Item(Element::String("HEY!".to_owned())));
    Ok(())
}

Way to go — you’re all set! Now go ahead and run more advanced queries!

Async API

If you need to use an async API, just change your import to:

skytable = { version = "0.3.0-alpha.2", features=["async"], default-features=false }

You can now establish a connection by using skytable::AsyncConnection::new(), adding .awaits wherever necessary. Do note that you’ll the Tokio runtime.

Using both sync and async APIs

With this client driver, it is possible to use both sync and async APIs at the same time. To do this, simply change your import to:

skytable = { version="0.3.0-alpha.2", features=["sync", "async"] }

Contributing

Open-source, and contributions … — they’re always welcome! For ideas and suggestions, create an issue on GitHub and for patches, fork and open those pull requests here!

License

This client library is distributed under the permissive Apache-2.0 License. Now go build great apps!

Modules

actions

Actions

types

Types

Macros

query

A macro that can be used to easily create queries with almost variadic properties. Where you’d normally create queries like this:

Structs

AsyncConnectionasync

An async connection object that wraps around aTcpStream and a read buffer

Connectionsync

A Connection is a wrapper around aTcpStream and a read buffer

Query

This struct represents a single simple query as defined by the Skyhash protocol

Enums

Element

Data Types

RespCode

Response codes returned by the server

Response

Responses