30 releases (6 breaking)

Uses old Rust 2015

0.8.1 Mar 31, 2018
0.7.0 Jan 23, 2018
0.6.1 Oct 8, 2017
0.3.1 Apr 5, 2017
0.1.20 Nov 8, 2016

#2073 in Database interfaces

MIT license

78KB
2K SLoC

gauc

Couchbase Rust Adapter / CLI

Why gauc? "gauč" is czech slang term for couch.

This project was originaly inspired by couchbase-rs

Status

Build Status Crates.io Crates.io Crates.io

Roadmap

See ROADMAP or milestones for up-to-date info.

Prerequisites

Features

High Level Client Functions

  • add
  • append
  • get
  • prepend
  • remove
  • replace
  • set
  • store
  • upsert

Wrapped functions

  • lcb_connect
  • lcb_create
  • lcb_destroy
  • lcb_get3
  • lcb_get_bootstrap_status
  • lcb_install_callback3
  • lcb_remove3
  • lcb_store3
  • lcb_strerror
  • lcb_wait

REST Interface

Bucket REST Interface

  • DELETE /bucket/<BUCKET_NAME>/doc/<ID> - delete
  • GET /bucket/<BUCKET_NAME>/doc/<ID> - get
  • POST /bucket/<BUCKET_NAME>/doc/<ID> - upsert (implicit)
  • POST /bucket/<BUCKET_NAME>/doc/<ID>/add - add
  • POST /bucket/<BUCKET_NAME>/doc/<ID>/append - append
  • POST /bucket/<BUCKET_NAME>/doc/<ID>/prepend - prepend
  • POST /bucket/<BUCKET_NAME>/doc/<ID>/replace - replace
  • POST /bucket/<BUCKET_NAME>/doc/<ID>/set - set
  • POST /bucket/<BUCKET_NAME>/doc/<ID>/upsert - upsert (explitcit)

Getting started

Sources

git clone https://github.com/korczis/gauc.git

First Build

$ cargo build
   Compiling strsim v0.5.1
   Compiling bitflags v0.7.0
   Compiling ansi_term v0.9.0
   Compiling vec_map v0.6.0
   Compiling libc v0.2.16
   Compiling unicode-segmentation v0.1.2
   Compiling unicode-width v0.1.3
   Compiling term_size v0.2.1
   ...
   ...
   ...
   Compiling clap v2.14.0
   Compiling gauc v0.1.0 (file:///Users/tomaskorcak/dev/microcrawler/gauc)
    Finished debug [unoptimized + debuginfo] target(s) in 16.33 secs

Build Examples

TODO: Create make (Makefile) for these

For list of all examples see examples folder

couchbase - Low Level Couchbase Access

$ cargo build --example couchbase
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs

hello_world - Initialize High Level Couchbase Client

$ cargo build --example hello_world
   Compiling gauc v0.1.0 (file:///Users/tomaskorcak/dev/microcrawler/gauc)
    Finished debug [unoptimized + debuginfo] target(s) in 1.7 secs

Examples

For examples see examples folder.

Usage

Show help

$ ./target/debug/gauc -h
Couchbase Rust Adapter / CLI / REST Interface 0.1.17
Tomas Korcak <korczis@gmail.com>

USAGE:
    gauc [FLAGS] [OPTIONS]

FLAGS:
    -h, --help           Prints help information
    -i, --interactive    Interactive mode
    -r, --rest           Run REST Server
    -V, --version        Prints version information
    -v, --verbose        Verbose mode

OPTIONS:
    -p, --rest-port <rest-port>    REST Port [default: 5000]
    -u, --url <url>                URL - connection string [default: couchbase://localhost/default]

License

Copyright 2016 Tomas Korcak korczis@gmail.com.

Licensed under the MIT License.

See LICENSE for further details.

Dependencies

~12–20MB
~316K SLoC