Skip to main content

Crate iicp_client

Crate iicp_client 

Source
Expand description

IICP Rust client SDK — ADR-016 §1 (SDK-01..SDK-06)

§Quickstart

use iicp_client::{ChatMessage, ChatOptions, ClientConfig, IicpClient};

#[tokio::main]
async fn main() -> iicp_client::Result<()> {
    let client = IicpClient::new(ClientConfig::default())?;
    let reply = client.chat(
        vec![ChatMessage { role: "user".into(), content: "What is IICP?".into() }],
        None,
    ).await?;
    println!("{}", reply.choices[0].message.content);
    Ok(())
}

Re-exports§

pub use qualify::qualify_service;
pub use qualify::qualify_service_async;
pub use qualify::ExposureMode;
pub use qualify::ExposureQualification;
pub use qualify::Ipv4Qualification;
pub use qualify::Ipv6Qualification;
pub use qualify::ServiceQualification;
pub use node::IicpNode;
pub use node::NodeConfig;

Modules§

availability
Time-based availability windows — operator capacity shaping by time-of-day.
backends
Drop-in backend handlers for iicp-client.
cip_policy
CIP-W01/CIP-W02 provider-side policy gate — S.12, ADR-012.
concurrency
Unified concurrency gate for the hybrid client.
confidentiality
IICP-CX S.16 Tier-1 confidentiality: X25519-HKDF-SHA256 + AES-256-GCM.
conformance
Self-conformance probes — operator-side health verification.
idempotency
Idempotency guard — task_id dedup with TTL eviction (parity Block E, #340).
identity
Persistent on-disk identity for the IICP Rust SDK CLI.
instance_lock
#405 — single-instance lock per node_id.
nat_detection
UPnP NAT detection + dual-port mapping (ADR-041 tier-0 + tier-1).
node
IICP provider node — registration, heartbeats, and task serving.
node_log
Persistent node log writer — ~/.iicp/logs/<node-id>.log + events.jsonl. Used for registration, heartbeat, and deregistration events.
peer_manager
Phase 2 mesh layer — peer discovery, gossip, and relay support (parity Block F, #340).
pricing
ADR-019 declarative pricing + HMAC-SHA256 signing — provider-side.
qualify
ADR-043 §9/§11 — ServiceQualification: 8-category exposure enum + structured result.
scheduler
QoS-aware admission policy for the provider serve path (parity Block C, #340).
token_validator
Constant-time bearer-token validation (parity Block E, #340).
trust_auditor
Trust auditor — cross-node declaration consistency check (parity Block E, #340).

Structs§

ChatChoice
A single choice in a chat response.
ChatMessage
A single chat message (role + content).
ChatOptions
Options for chat() calls.
ChatResponse
OpenAI-compatible chat completion response.
ChatUsage
Token usage from a chat completion.
ClientConfig
Client configuration (SDK-04: timeout_ms enforced at construction time).
DiscoverOptions
Options for discover() calls.
IicpClient
IICP client — discover → select → submit (ADR-016 §1).
Node
A single IICP node returned by /v1/discover.
NodeList
Response from /v1/discover.
TaskAuth
Auth block for a task request.
TaskConstraints
Constraints block for a task request.
TaskRequest
IICP task request body.
TaskResponse
Response from POST /v1/task.

Enums§

IicpError
All errors emitted by the IICP client SDK.

Functions§

make_traceparent
Generate a W3C traceparent header value (SDK-06). Format: 00-<32hex>-<16hex>-01

Type Aliases§

Result