Skip to main content

bitwarden_ipc/
lib.rs

1#![doc = include_str!("../README.md")]
2
3mod constants;
4pub mod discover;
5mod endpoint;
6mod error;
7mod ipc_client;
8mod ipc_client_ext;
9mod ipc_client_trait;
10mod message;
11mod rpc;
12mod serde_utils;
13mod traits;
14
15/// Re-export types to make sure wasm_bindgen picks them up
16#[cfg(feature = "wasm")]
17pub mod wasm;
18
19pub use endpoint::{Endpoint, HostId, Source};
20pub use error::{ReceiveError, RequestError, SendError, SubscribeError, TypedReceiveError};
21pub use ipc_client::{IpcClientImpl, IpcClientSubscription, IpcClientTypedSubscription};
22pub use ipc_client_ext::IpcClientExt;
23pub use ipc_client_trait::IpcClient;
24pub use message::{
25    IncomingMessage, OutgoingMessage, PayloadTypeName, TypedIncomingMessage, TypedOutgoingMessage,
26};
27#[doc(hidden)]
28pub use rpc::exec::handler::ErasedRpcHandler;
29pub use rpc::{exec::handler::RpcHandler, request::RpcRequest};
30#[cfg(any(test, feature = "test-support"))]
31pub use traits::TestCommunicationBackend;
32pub use traits::{InMemorySessionRepository, NoEncryptionCryptoProvider, NoopCommunicationBackend};
33
34// Test configuration of the IPC client, always available in test and test-support contexts.
35#[cfg(any(test, feature = "test-support"))]
36#[allow(missing_docs)]
37pub type TestIpcClient = ipc_client::IpcClientImpl<
38    crate::traits::NoEncryptionCryptoProvider,
39    crate::traits::TestCommunicationBackend,
40    crate::traits::InMemorySessionRepository<()>,
41>;