blob: 09798a7097445d57a7aa4b84a91557d5031db5a0 [file] [log] [blame]
Mohammed Naser3415a2a2025-03-06 21:16:12 -05001use crate::transports::{Receiver, Sender, codec::JsonCodec};
2use futures_util::stream::StreamExt;
3use jsonrpsee::core::client::{TransportReceiverT, TransportSenderT};
4use std::{io::Error, path::Path};
5use tokio::net::UnixStream;
6use tokio_util::codec::Framed;
7
8pub async fn connect(
9 socket: impl AsRef<Path>,
10) -> Result<(impl TransportSenderT + Send, impl TransportReceiverT + Send), Error> {
11 let connection = UnixStream::connect(socket).await?;
12 let (sink, stream) = Framed::new(connection, JsonCodec).split();
13
14 let sender = Sender { inner: sink };
15 let receiver = Receiver { inner: stream };
16
17 Ok((sender, receiver))
18}