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;
24mod types;
25
26#[cfg(feature = "iicp-tcp")]
27pub mod iicp_tcp;
28
29#[cfg(feature = "nat")]
30pub mod nat_detection;
31
32#[cfg(feature = "nat")]
33pub mod qualify;
34
35pub mod availability;
36pub mod backends;
37pub mod cip_policy;
38pub mod concurrency;
39pub mod confidentiality;
40pub mod conformance;
41pub mod idempotency;
42pub mod identity;
43pub mod peer_manager;
44pub mod pricing;
45#[cfg(feature = "iicp-tcp")]
46pub mod relay_session;
47#[cfg(feature = "iicp-tcp")]
48pub mod relay_worker_client;
49pub mod scheduler;
50pub mod token_validator;
51pub mod trust_auditor;
52
53#[cfg(feature = "nat")]
54pub use qualify::{
55    qualify_service, qualify_service_async, ExposureMode, ExposureQualification, Ipv4Qualification,
56    Ipv6Qualification, ServiceQualification,
57};
58
59pub use client::IicpClient;
60pub use errors::{IicpError, Result};
61pub use http::make_traceparent;
62pub use node::{IicpNode, NodeConfig};
63pub use types::{
64    ChatChoice, ChatMessage, ChatOptions, ChatResponse, ChatUsage, ClientConfig, DiscoverOptions,
65    Node, NodeList, TaskAuth, TaskConstraints, TaskRequest, TaskResponse,
66};