bmux_client 0.0.1-alpha.1

Client component for bmux terminal multiplexer
docs.rs failed to build bmux_client-0.0.1-alpha.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: bmux_client-0.0.1-alpha.0

bmux_client

Client-side IPC facade for bmux.

Overview

This crate provides the typed client used by the CLI, tests, and other host-side callers to connect to a bmux server endpoint, complete protocol negotiation, and send core IPC requests. Domain behavior is reached through generic service invocation paths and typed plugin API crates rather than domain-specific client helpers.

Responsibilities

  • Connect to a local or bridged bmux IPC endpoint.
  • Negotiate the IPC protocol contract and supported capabilities.
  • Encode requests, decode responses, and surface typed client errors.
  • Provide generic helpers for service invocation and event delivery.
  • Preserve caller principal identity for server-side policy checks.

Core types

  • BmuxClient: Stateful IPC client with request/response helpers.
  • ClientError: Error type for transport, serialization, timeout, protocol, and server response failures.
  • AttachOpenInfo, AttachSnapshotState, and related attach structs: host-side data returned by attach-oriented IPC/service workflows.
  • ServerStatusInfo and PrincipalIdentityInfo: core server/control status responses.

Usage

use std::time::Duration;

use bmux_client::BmuxClient;
use bmux_ipc::IpcEndpoint;

# async fn example() -> bmux_client::Result<()> {
let endpoint = IpcEndpoint::unix_socket("/tmp/bmux.sock");
let mut client = BmuxClient::connect(&endpoint, Duration::from_secs(5), "example").await?;

client.ping().await?;
# Ok(())
# }

For profile-aware callers, prefer BmuxClient::connect_with_paths or BmuxClient::connect_default so the endpoint, timeout, and principal identity come from the resolved bmux configuration.