Skip to main content

IpcServer

Struct IpcServer 

Source
pub struct IpcServer<RpcMiddleware = Identity> { /* private fields */ }
Expand description

Ipc Server implementation

This is an adapted jsonrpsee Server, but for Ipc connections.

Implementations§

Source§

impl<RpcMiddleware> IpcServer<RpcMiddleware>

Source

pub fn endpoint(&self) -> String

Returns the configured endpoint

Source§

impl<RpcMiddleware> IpcServer<RpcMiddleware>
where RpcMiddleware: Layer<RpcService> + Clone + Send + 'static, RpcMiddleware::Service: RpcServiceT + Send + Sync + 'static,

Source

pub async fn start( self, methods: impl Into<Methods>, ) -> Result<ServerHandle, IpcServerStartError>

Start responding to connections requests.

This will run on the tokio runtime until the server is stopped or the ServerHandle is dropped.

Returns an error if the endpoint cannot be opened or the requested Unix socket permissions cannot be parsed or applied before serving requests.

use jsonrpsee::RpcModule;
use reth_ipc::server::Builder;
async fn run_server() -> Result<(), Box<dyn core::error::Error + Send + Sync>> {
    let server = Builder::default().build("/tmp/my-uds".into());
    let mut module = RpcModule::new(());
    module.register_method("say_hello", |_, _| "lo")?;
    let handle = server.start(module).await?;

    // In this example we don't care about doing shutdown so let's it run forever.
    // You may use the `ServerHandle` to shut it down or manage it yourself.
    let server = tokio::spawn(handle.stopped());
    server.await.unwrap();
    Ok(())
}

Trait Implementations§

Source§

impl<RpcMiddleware> Debug for IpcServer<RpcMiddleware>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<RpcMiddleware = Identity> !RefUnwindSafe for IpcServer<RpcMiddleware>

§

impl<RpcMiddleware = Identity> !UnwindSafe for IpcServer<RpcMiddleware>

§

impl<RpcMiddleware> Freeze for IpcServer<RpcMiddleware>
where RpcServiceBuilder<RpcMiddleware>: Freeze,

§

impl<RpcMiddleware> Send for IpcServer<RpcMiddleware>
where RpcServiceBuilder<RpcMiddleware>: Send,

§

impl<RpcMiddleware> Sync for IpcServer<RpcMiddleware>
where RpcServiceBuilder<RpcMiddleware>: Sync,

§

impl<RpcMiddleware> Unpin for IpcServer<RpcMiddleware>
where RpcServiceBuilder<RpcMiddleware>: Unpin,

§

impl<RpcMiddleware> UnsafeUnpin for IpcServer<RpcMiddleware>
where RpcServiceBuilder<RpcMiddleware>: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.