ovsdb-client 0.0.1

Async Rust client for the Open vSwitch Database Protocol with monitoring support
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::transports::{Receiver, Sender, codec::JsonCodec};
use futures_util::stream::StreamExt;
use jsonrpsee::core::client::{TransportReceiverT, TransportSenderT};
use std::io::Error;
use tokio::net::{TcpStream, ToSocketAddrs};
use tokio_util::codec::Framed;

pub async fn connect(
    socket: impl ToSocketAddrs,
) -> Result<(impl TransportSenderT + Send, impl TransportReceiverT + Send), Error> {
    let connection = TcpStream::connect(socket).await?;
    let (sink, stream) = Framed::new(connection, JsonCodec).split();

    let sender = Sender { inner: sink };
    let receiver = Receiver { inner: stream };

    Ok((sender, receiver))
}