ndn_face_local/lib.rs
1//! # ndn-face-local — Local and IPC faces for NDN
2//!
3//! Provides face implementations for communication between applications and
4//! the NDN forwarder on the same machine.
5//!
6//! ## Key types
7//!
8//! - [`AppFace`] / [`AppHandle`] — in-process channel pair for library-embedded use
9//! - [`UnixFace`] — Unix domain socket face (unix only)
10//! - [`IpcFace`] / [`IpcListener`] — cross-platform IPC (Unix sockets on unix, named pipes on Windows)
11//! - [`ShmFace`] / [`ShmHandle`] — shared-memory face for zero-copy local transport (requires `spsc-shm` feature)
12//!
13//! ## Features
14//!
15//! - **`spsc-shm`** (optional) — enables [`ShmFace`] for high-throughput shared-memory communication.
16
17#![allow(missing_docs)]
18
19pub mod app;
20pub mod ipc;
21
22#[cfg(unix)]
23pub mod unix;
24
25#[cfg(all(unix, not(any(target_os = "android", target_os = "ios")), feature = "spsc-shm"))]
26pub mod shm;
27
28pub use app::{AppFace, AppHandle};
29pub use ipc::{IpcFace, IpcListener, ipc_face_connect};
30
31#[cfg(unix)]
32pub use unix::{
33 UnixFace, unix_face_connect, unix_face_from_stream, unix_management_face_from_stream,
34};
35
36#[cfg(all(unix, not(any(target_os = "android", target_os = "ios")), feature = "spsc-shm"))]
37pub use shm::{ShmError, ShmFace, ShmHandle};