pub struct VeilClient { /* private fields */ }Expand description
Async client for the Mugen Veil verifiable inference gateway.
Construct via VeilClient::builder().
VeilClient is cheap to clone — the underlying reqwest::Client uses an
Arc internally and shares the connection pool across clones.
Implementations§
Source§impl VeilClient
impl VeilClient
Sourcepub fn builder() -> VeilClientBuilder
pub fn builder() -> VeilClientBuilder
Begin building a client. See VeilClientBuilder.
Sourcepub async fn health_check(&self) -> Result<Health>
pub async fn health_check(&self) -> Result<Health>
GET /healthz — Returns gateway health information.
Use Health::is_healthy() to check overall readiness.
Sourcepub async fn submit_job(
&self,
model_id: impl Into<String>,
input_data: Vec<Vec<f64>>,
) -> Result<String>
pub async fn submit_job( &self, model_id: impl Into<String>, input_data: Vec<Vec<f64>>, ) -> Result<String>
POST /v1/jobs — Submit an inference job and return immediately.
Returns the job_id. Use get_job to poll status,
or verify_inference to submit and wait.
§Arguments
model_id— the model name registered with the gateway (e.g."tiny_mlp_v1")input_data— row-major input tensor, e.g.vec![vec![0.1, 0.2, 0.3, 0.4]]
Sourcepub async fn get_job(&self, job_id: &str) -> Result<Job>
pub async fn get_job(&self, job_id: &str) -> Result<Job>
GET /v1/jobs/{id} — Poll the status of a job.
Sourcepub async fn get_proof(&self, job_id: &str) -> Result<Proof>
pub async fn get_proof(&self, job_id: &str) -> Result<Proof>
GET /v1/jobs/{id}/proof — Fetch the raw proof bytes for a completed job.
The gateway returns HTTP 202 if the job is not yet complete.
Returns VeilError::Api with status 202 in that case — callers should
poll get_job first.
Sourcepub async fn register_model(
&self,
req: RegisterModelRequest,
) -> Result<RegisterModelResponse>
pub async fn register_model( &self, req: RegisterModelRequest, ) -> Result<RegisterModelResponse>
POST /v1/models — Register an ONNX model artifact with the gateway.
Pins the artifact to IPFS and registers it on-chain.
Requires PINATA_JWT to be configured on the gateway.
Sourcepub async fn verify_inference(
&self,
model_id: impl Into<String>,
input_data: Vec<Vec<f64>>,
) -> Result<VerifyResult>
pub async fn verify_inference( &self, model_id: impl Into<String>, input_data: Vec<Vec<f64>>, ) -> Result<VerifyResult>
Submit an inference job and block until it reaches a terminal state.
Polls GET /v1/jobs/{id} at the configured poll_interval until the
job status is one of done, settled, or failed, or until the
configured timeout elapses.
§Arguments
model_id— registered model name, e.g."tiny_mlp_v1"input_data— row-major input tensor
§Errors
VeilError::Timeout— polling exceeded the configured timeoutVeilError::JobFailed— the gateway reported the job as failedVeilError::Api— gateway returned a non-2xx responseVeilError::Http— network-level failure
§Example
let client = VeilClient::builder()
.base_url("http://localhost:8080")
.build()?;
let result = client
.verify_inference("tiny_mlp_v1", vec![vec![0.1, 0.2, 0.3, 0.4]])
.await?;
println!("tx_hash: {:?}", result.tx_hash);Trait Implementations§
Source§impl Clone for VeilClient
impl Clone for VeilClient
Source§fn clone(&self) -> VeilClient
fn clone(&self) -> VeilClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more