Skip to content
HIPS
  • Earn with your GPU
  • Pricing
  • Docs
Sign inJoin early access
⌘K

Get started

  1. 01Developer hub
  2. 02Quickstart
  3. 03Migrate to HIPS

Guides

  1. 04HIPS SDK
    1. APython
    2. BTypeScript and JavaScript
    3. CGo
    4. DRust
    5. EJava
    6. F.NET
    7. GPHP
    8. HRuby
  2. 05Import and run your model
  3. 06Model and task guides
    1. ATask guides
    2. BLanguage (chat)
    3. CClassification
    4. DImage
    5. EVideo
    6. FAudio
    7. GDocument processing
  4. 07Batch jobs
  5. 08Prompt caching
  6. 09Coding-tool setup
    1. AClaude Code
    2. BOther coding tools and editor integrations
  7. 10Command line
    1. ASign in

Reference

  1. 11API reference
    1. AAuthentication
    2. BChat completions
    3. CResponses
    4. DModels
    5. ETasks
    6. FJobs
    7. GUploads
    8. HDeployments
    9. IRequirements and headers
    10. JErrors
    11. KUsage
    12. LVersioning
  2. 12Operating guidance
    1. ALimits
    2. BErrors
    3. CRetries and billing outcomes
    4. DIdempotency
    5. EStreaming
    6. FData handling
    7. GCompatibility matrix
  3. 13Changelog
Sheet indexHIPS SDK

Get started

  1. 01Developer hub
  2. 02Quickstart
  3. 03Migrate to HIPS

Guides

  1. 04HIPS SDK
    1. APython
    2. BTypeScript and JavaScript
    3. CGo
    4. DRust
    5. EJava
    6. F.NET
    7. GPHP
    8. HRuby
  2. 05Import and run your model
  3. 06Model and task guides
    1. ATask guides
    2. BLanguage (chat)
    3. CClassification
    4. DImage
    5. EVideo
    6. FAudio
    7. GDocument processing
  4. 07Batch jobs
  5. 08Prompt caching
  6. 09Coding-tool setup
    1. AClaude Code
    2. BOther coding tools and editor integrations
  7. 10Command line
    1. ASign in

Reference

  1. 11API reference
    1. AAuthentication
    2. BChat completions
    3. CResponses
    4. DModels
    5. ETasks
    6. FJobs
    7. GUploads
    8. HDeployments
    9. IRequirements and headers
    10. JErrors
    11. KUsage
    12. LVersioning
  2. 12Operating guidance
    1. ALimits
    2. BErrors
    3. CRetries and billing outcomes
    4. DIdempotency
    5. EStreaming
    6. FData handling
    7. GCompatibility matrix
  3. 13Changelog
04
  1. Docs/
  2. HIPS SDK/
  3. Rust
(Detail D)

PreviewNot yet validated. Join early access

llms.txt

The HIPS SDK for Rust

On this sheet10 sections
  1. At a glance
  2. Install
  3. Configuration
  4. A first task
  5. Task-input uploads
  6. Running your own model
  7. Jobs
  8. Errors and retries
  9. Requirements
  10. Method reference

The HIPS SDK for Rust runs image, video, audio and specialist models, and your own imported models, through the HIPS task API. It is one of eight SDKs generated from one API description, hand-finished and checked by one shared conformance suite, so it behaves exactly as the other seven do; only the language's code and idioms differ.

Note

The package name and the method names below are proposals Not decided yet. The eight SDKs are released together, once every one passes the conformance suite; nothing here is installable yet.

Fig. 1, sheet 04HIPS SDK

At a glance

  1. 01
    Runtime

    Set with the build

  2. 02
    Repository

    hips-ai/hips-sdk-rust, one repository per language under hips-ai

  3. 03
    Importproposed

    hips

  4. 04
    Packageproposed

    hips-ai on crates.io, not yet reserved Not decided yet

  5. 05
    Idioms

    snake_case methods, builder-style parameter structs, Result on every call.

  6. 06
    Forms

    An async client, and a blocking client behind a feature flag.

Install

The install command appears here when the eight SDKs are published. Until then the package name is a proposal, and no command is printed that would install something else.

Configuration

The client reads two names from the environment, HIPS_API_KEY and HIPS_BASE_URL, whose value is https://ai.hips.com/v1. An argument given to the client wins over the environment, and an empty argument counts as not given. A client with no key fails when it is constructed, before any request. Your own code reads HIPS_MODEL and passes it as the model, or passes a dep_ deployment id; the SDK sends either exactly as given.

Environment

00000000000000000000000000000000000000001export HIPS_API_KEY="<a key created in the Console>"2export HIPS_BASE_URL="https://ai.hips.com/v1"3export HIPS_MODEL="<a catalog model id or a dep_ deployment id>"
Reads from the environmentHIPS_API_KEYHIPS_BASE_URLHIPS_MODEL

Keep the key on the server or in a secret store. The SDK never writes it to a file, a keychain or a cache, and never logs it.

A first task

A classification task against your own model's deployment, the example every SDK page shares. The input and output shapes are illustrative; the task's real shape is on its task guide.

Rust

00000000000000000000000000000000000000001use hips::{Client, Requirements, TaskParams};2use serde_json::json;3 4// Reads HIPS_API_KEY and HIPS_BASE_URL (https://ai.hips.com/v1);5// fails without a key.6let client = Client::new()?;7 8let result = client9    .tasks()10    .run(TaskParams {11        deployment: Some("dep_...".into()),12        input: json!({ "text": "I was charged twice and nobody has replied." }),13        requirements: Some(Requirements::new().pool("approved").pricing_mode("stable")),14        ..Default::default()15    })16    .await?;17 18println!("{} {}", result.meta.cost_micros, result.meta.request_id);
Reads from the environmentHIPS_API_KEYHIPS_BASE_URL

Task-input uploads

client.uploads().upload sends a file that is too large to inline: it creates the upload with POST /v1/uploads, puts the bytes to the address the API returned, always a HIPS host over https, and gives you the upl_ id to name in a task's input. Uploads are for task inputs only: the SDK has no way to send model weights.

Running your own model

Your model is imported from its model hub in the Console, never uploaded: the import pins the revision, checks the files, re-saves them as weight files only and signs them (Import and run your model). You deploy the version there, and the SDK takes the dep_ deployment id as given. The SDK never starts an import and never asks for, stores or sends a hub token.

Jobs

Video, long audio and batched generation are jobs. client.jobs().create answers at once with the job; client.jobs().wait polls client.jobs().get with backoff, honoring the server's suggested interval, until the job is completed, failed, canceled or interrupted. client.jobs().cancel stops one.

Errors and retries

One error envelope on every route, mirrored as typed errors, all deriving from a base error that carries the status, type, code, param, the server's message and the request id. Result<T, hips::Error>, with one variant per error type: Error::RateLimit carries retry_after.

Status and typeError
400 invalid_request_errorInvalidRequestError
401 authentication_errorAuthenticationError
402 insufficient_creditInsufficientCreditError
403 permission_errorPermissionError
403 workspace_suspendedWorkspaceSuspendedError
404 not_found_errorNotFoundError
429 rate_limit_errorRateLimitError, with the wait from Retry-After
503 overloaded_errorOverloadedError, with the wait from Retry-After
500 api_errorApiError
No responseConnectionError, TimeoutError
  • Status and type
    400 invalid_request_error
    Error
    InvalidRequestError
  • Status and type
    401 authentication_error
    Error
    AuthenticationError
  • Status and type
    402 insufficient_credit
    Error
    InsufficientCreditError
  • Status and type
    403 permission_error
    Error
    PermissionError
  • Status and type
    403 workspace_suspended
    Error
    WorkspaceSuspendedError
  • Status and type
    404 not_found_error
    Error
    NotFoundError
  • Status and type
    429 rate_limit_error
    Error
    RateLimitError, with the wait from Retry-After
  • Status and type
    503 overloaded_error
    Error
    OverloadedError, with the wait from Retry-After
  • Status and type
    500 api_error
    Error
    ApiError
  • Status and type
    No response
    Error
    ConnectionError, TimeoutError
  • Retried: 429 and 503, honoring Retry-After, and a connection failure before any byte of a response, with exponential backoff and jitter Not decided yet.
  • Never retried: any other 4xx, and 500.
  • An idempotency-key is generated for every client.tasks().run and client.jobs().create call and sent on every attempt, so a retry can never bill twice; you can supply your own.
  • Redirects are never followed, so a key is never sent to another host.

Do not assume that every failed or retried attempt has the same billing outcome: each result's meta and usage show what that response was charged (Retries and billing outcomes).

Requirements

Pool, pricing mode, region and fallback are set as client defaults and overridden per call; the SDK writes them as the hips object in the body. A requirement left unset is left out, so the key's defaults from the Console apply. The SDK never sends a requirement it was not given and never weakens one.

Method reference

The neutral names of the SDK specification, as Rust writes them. The full reference is generated from the SDK's own doc comments when it is released.

MethodSends and returns
client.tasks().runPOST /v1/tasks, synchronous: the task's typed output, usage and meta
client.jobs().createPOST /v1/jobs, asynchronous: the job with its id and state
client.jobs().getGET /v1/jobs/{id}: the job, with the result when completed
client.jobs().waitjobs.get repeated, honoring the server's interval, until completed, failed, canceled or interrupted
client.jobs().cancelThe cancel route: the job
client.uploads().uploadPOST /v1/uploads then the PUT: a task input, never model weights
client.models().listGET /v1/models: a page of models
client.deployments().getThe read side of a deployment, with its state
client.tasks().run_rawThe body exactly as given: a field this SDK version does not know yet
  • Method
    client.tasks().run
    Sends and returns
    POST /v1/tasks, synchronous: the task's typed output, usage and meta
  • Method
    client.jobs().create
    Sends and returns
    POST /v1/jobs, asynchronous: the job with its id and state
  • Method
    client.jobs().get
    Sends and returns
    GET /v1/jobs/{id}: the job, with the result when completed
  • Method
    client.jobs().wait
    Sends and returns
    jobs.get repeated, honoring the server's interval, until completed, failed, canceled or interrupted
  • Method
    client.jobs().cancel
    Sends and returns
    The cancel route: the job
  • Method
    client.uploads().upload
    Sends and returns
    POST /v1/uploads then the PUT: a task input, never model weights
  • Method
    client.models().list
    Sends and returns
    GET /v1/models: a page of models
  • Method
    client.deployments().get
    Sends and returns
    The read side of a deployment, with its state
  • Method
    client.tasks().run_raw
    Sends and returns
    The body exactly as given: a field this SDK version does not know yet

Related sheets

  • HIPS SDK overview
  • Task guides
  • Import and run your model
Previous sheetGo
Next sheetJava
Sheet
04 of 13
Detail
D
Updated
2026-10-21
Status
Preview
Join early access

On this sheet

  1. At a glance
  2. Install
  3. Configuration
  4. A first task
  5. Task-input uploads
  6. Running your own model
  7. Jobs
  8. Errors and retries
  9. Requirements
  10. Method reference

Product

  • Inference
  • Models
  • Deploy your model
  • Always-on GPU capacity
  • How it works
  • Use cases
  • Pricing

Developer

  • Docs
  • Quickstart preview
  • Migrate to HIPS
  • HIPS SDK
  • Batch jobs
  • API reference

Provider

  • Earn with your GPU
  • Register GPU interest
  • Download for Mac
  • Download for Windows
  • Download for Linux

Resource

  • Security and Data
  • Resources
  • llms.txt

Company

  • About
  • Contact
  • Affiliate program
  • HIPS Payments

Legal

  • Legal
  • Consumer Health Data Privacy Policy
  • Report content
  • Cookie settings

Support

  • Contact HIPS
  • Looking for payments support?

HIPS. AI inference for builders.

hips.com

Hyperscale Inference Processing Systems OÜ