Skip to main content

iicp_client/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2//! IICP Rust client SDK — ADR-016 §1 (SDK-01..SDK-06)
3//!
4//! # Quickstart
5//! ```rust,no_run
6//! use iicp_client::{ChatMessage, ChatOptions, ClientConfig, IicpClient};
7//!
8//! #[tokio::main]
9//! async fn main() -> iicp_client::Result<()> {
10//!     let client = IicpClient::new(ClientConfig::default())?;
11//!     let reply = client.chat(
12//!         vec![ChatMessage { role: "user".into(), content: "What is IICP?".into() }],
13//!         None,
14//!     ).await?;
15//!     println!("{}", reply.choices[0].message.content);
16//!     Ok(())
17//! }
18//! ```
19
20mod client;
21mod errors;
22mod http;
23pub mod node;
24pub mod node_log;
25mod types;
26
27#[cfg(feature = "iicp-tcp")]
28pub mod iicp_tcp;
29
30#[cfg(feature = "nat")]
31pub mod nat_detection;
32
33#[cfg(feature = "nat")]
34pub mod qualify;
35
36pub mod availability;
37pub mod backends;
38pub mod cip_policy;
39pub mod concurrency;
40pub mod confidentiality;
41pub mod conformance;
42pub mod idempotency;
43pub mod identity;
44pub mod instance_lock;
45pub mod peer_manager;
46pub mod pricing;
47#[cfg(feature = "iicp-tcp")]
48pub mod relay_session;
49#[cfg(feature = "iicp-tcp")]
50pub mod relay_worker_client;
51pub mod scheduler;
52pub mod token_validator;
53pub mod trust_auditor;
54
55#[cfg(feature = "nat")]
56pub use qualify::{
57    qualify_service, qualify_service_async, ExposureMode, ExposureQualification, Ipv4Qualification,
58    Ipv6Qualification, ServiceQualification,
59};
60
61pub use client::IicpClient;
62pub use errors::{IicpError, Result};
63pub use http::make_traceparent;
64pub use node::{IicpNode, NodeConfig};
65pub use types::{
66    ChatChoice, ChatMessage, ChatOptions, ChatResponse, ChatUsage, ClientConfig, DiscoverOptions,
67    Node, NodeList, TaskAuth, TaskConstraints, TaskRequest, TaskResponse,
68};