sonic-channel 1.0.1

Rust client for sonic search backend
Documentation

Sonic Channel

unsafe forbidden Documentation Crates.io Crates.io

Rust client for sonic search backend.

We recommend you start with the documentation.

Installation

Add sonic-channel = { version = "1.0" } as a dependency in Cargo.toml.

Cargo.toml example:

[package]
name = "my-crate"
version = "0.1.0"
authors = ["Me <user@rust-lang.org>"]

[dependencies]
sonic-channel = { version = "1.0", features = ["ingest"] }

Add default-features = false to dependency, if you want to exclude default search channel.

Example usage

Search channel

Note: This example requires enabling the search feature, enabled by default.

use sonic_channel::*;

fn main() -> result::Result<()> {
    let channel = SearchChannel::start(
        "localhost:1491",
        "SecretPassword",
    )?;

    let objects = channel.query(QueryRequest::new(
        Dest::col_buc("collection", "bucket"),
        "recipe",
    ))?;
    dbg!(objects);

    Ok(())
}

Ingest channel

Note: This example requires enabling the ingest feature.

use sonic_channel::*;

fn main() -> result::Result<()> {
    let channel = IngestChannel::start(
        "localhost:1491",
        "SecretPassword",
    )?;

    let dest = Dest::col_buc("collection", "bucket").obj("object:1");
    let pushed = channel.push(PushRequest::new(dest, "my best recipe"))?;
    // or
    // let pushed = channel.push(
    //     PushRequest::new(dest, "Мой лучший рецепт").lang(Lang::Rus)
    // )?;
    dbg!(pushed);

    Ok(())
}

Control channel

Note: This example requires enabling the control feature.

use sonic_channel::*;

fn main() -> result::Result<()> {
    let channel = ControlChannel::start(
        "localhost:1491",
        "SecretPassword",
    )?;

    let result = channel.consolidate()?;
    assert_eq!(result, ());

    Ok(())
}

Available features

  • default - ["search"]
  • search - Add sonic search mode with methods
  • ingest - Add sonic ingest mode with methods
  • control - Add sonic control mode with methods