liminal-sdk 0.19.1

Application-facing SDK traits for liminal messaging clients
Documentation
#![cfg_attr(not(feature = "std"), no_std)]

extern crate alloc;

pub mod channel;
pub mod connection;
pub mod conversation;
pub mod embedded;
pub mod error;
pub mod pressure;
pub mod remote;
pub mod types;

pub use channel::ChannelHandle;
pub use connection::{
    ConnectionEvent, ConnectionEvents, ConnectionLifecycle, ConnectionPool, ConnectionPoolConfig,
    ConnectionState, DisconnectReason, PoolConnectionId, ResumeRequest, SubscriptionAssignment,
    SubscriptionId, SubscriptionRecovery,
};
pub use conversation::{ConversationEvent, ConversationHandle, ConversationId};
pub use embedded::{EmbeddedChannelHandle, EmbeddedConfig, EmbeddedConversationHandle};
pub use error::SdkError;
#[cfg(feature = "std")]
pub use liminal::protocol::ProtocolVersion;
pub use pressure::{DeliveryAck, PressureResponse};
#[cfg(all(feature = "std", unix))]
pub use remote::ReadWake;
pub use remote::{
    CredentialAttachReissueReason, LostCredentialAttachRefusalReason, PARTICIPANT_PUMP_WINDOW,
    ParticipantPumpDiagnostics, ParticipantResponseProvenance, ParticipantResumeStore,
    RecordAdmissionFate, RemoteChannelHandle, RemoteConfig, RemoteConversationHandle,
    RemoteCredentialAttachRecovery, RemoteDetachReplayOutcome, RemoteExpectedOperationRecovery,
    RemoteLostOperationResolution, RemoteLostReconnectResolution, RemoteOperationRecordOutcome,
    RemoteOperationTransportFate, RemoteParticipantError, RemoteParticipantHandle,
    RemoteParticipantInbound, RemoteParticipantOperation, RemoteParticipantSendOutcome,
    RemoteReconnectAttemptOutcome, RemoteReconnectPermit, RemoteReconnectPermitOutcome,
    RemoteReconnectPermitRecovery, RemoteReplayApplyOutcome, RemoteTransportLossOutcome,
    SdkChannelHandle, SdkConfig, SdkConversationHandle, ServerAddress, build_channel_handle,
    build_conversation_handle,
};
#[cfg(feature = "std")]
pub use remote::{
    DEFAULT_PUSH_MAILBOX_BYTES, DEFAULT_PUSH_MAILBOX_FRAMES, DEFAULT_SUBSCRIPTION_MAILBOX_BYTES,
    DEFAULT_SUBSCRIPTION_MAILBOX_FRAMES, DeliveredMessage, FlushMode, FlushOutcome,
    MailboxOverflow, MailboxStats, OBSERVABILITY_CHANNEL, PublishRejection, PushClient,
    PushCloseCause, PushReceiveOutcome, PushReceiver, PushWriter, PushedFrame, SubscriptionStream,
    WebSocketDeliveredMessage, WebSocketRemoteTransport, WebSocketSubscriptionStream,
};
pub use types::{SchemaMetadata, SchemaValidate};

/// Frames a Lys pass token as the credential a `Connect` carries.
///
/// ACCESS-001 R2: the Lys record tag, then the token exactly as Lys issued
/// it. A `WirePassV1` keeps its own record; the two are never combined.
#[must_use]
pub fn lys_pass_credential(token: &str) -> Vec<u8> {
    liminal_protocol::credential::WireCredential::lys_record(token.trim().as_bytes())
}