Skip to main content

bitwarden_ipc/
lib.rs

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