Skip to main content

Covia SDK Overview

The Covia SDK provides client libraries for building applications on the Grid. SDKs are available for multiple languages, enabling developers to:

  • Connect to venues and discover assets
  • Invoke operations and monitor jobs
  • Upload and download artifacts
  • Build AI-powered applications

SDKs are available for major language ecosystems.

LanguagePackageGitHubStatus
Javacovia-corecovia-ai/coviaAvailable
Pythoncoviacovia-ai/covia-sdk-pyAvailable
TypeScript@covia/sdkcovia-ai/covia-sdk-tsComing Soon
Rustcoviacovia-ai/covia-sdk-rsPlanned

Core Concepts

All SDKs share the same conceptual model:

Venue

A Venue represents a connection to a Grid node. It's your entry point for all Grid interactions.

Asset

An Asset represents a resource on the Grid - either an artifact (data) or an operation (compute). Assets are identified by their content-addressable Asset ID.

Job

A Job tracks the execution of an operation. Jobs are asynchronous and can be polled or monitored for completion.

Quick Example

Here's a simple example showing the common pattern across all SDKs:

// Java
Venue venue = Grid.connect("did:web:venue.covia.ai");
Object result = venue.run("my-operation", Map.of("query", "hello world"));
# Python
from covia import Grid

with Grid.connect("did:web:venue.covia.ai") as venue:
result = venue.run("my-operation", {"query": "hello world"})
// TypeScript (coming soon)
const venue = await Covia.connect("did:web:venue.covia.ai");
const result = await venue.run("my-operation", { query: "hello world" });
// Rust (planned)
let venue = Grid::connect("did:web:venue.covia.ai").await?;
let result = venue.run("my-operation", json!({"query": "hello world"})).await?;

Choosing an SDK

  • Java: Reference implementation. Best for enterprise applications, JVM-based systems, and when you need the full feature set
  • Python: Ideal for data science, ML pipelines, scripting, and rapid prototyping. Full sync and async support
  • TypeScript: Perfect for web applications, Node.js backends, and full-stack development
  • Rust: For performance-critical systems, embedded applications, and when you need zero-overhead abstractions

Direct API Access

If an SDK isn't available for your language, you can use the REST API directly. The API is simple and well-documented, making it straightforward to build your own client.