15 releases (3 stable)
1.1.0 | Oct 24, 2022 |
---|---|
1.0.1 | Jul 18, 2022 |
0.6.0 | Mar 23, 2022 |
0.5.0 | Dec 22, 2021 |
0.2.1 | Jul 26, 2020 |
#2461 in Database interfaces
62 downloads per month
Used in portal
66KB
1.5K
SLoC
Sonic Channel
Rust client for sonic search backend.
We recommend you start with the documentation.
Installation
The MSRV is: 1.58.1
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
Dependencies
~2.5MB
~46K SLoC