Skip to main content

Crate edgefirst_client

Crate edgefirst_client 

Source
Expand description

§EdgeFirst Studio Client Library

The EdgeFirst Studio Client Library provides a Rust client for interacting with EdgeFirst Studio, a comprehensive platform for computer vision and machine learning workflows. This library enables developers to programmatically manage datasets, annotations, training sessions, and other Studio resources.

§Features

  • Authentication: Secure token-based authentication with automatic renewal
  • Dataset Management: Upload, download, and manage datasets with various file types
  • Annotation Management: Create, update, and retrieve annotations for computer vision tasks
  • Training & Validation: Manage machine learning training and validation sessions
  • Project Organization: Organize work into projects with hierarchical structure
  • Polars Integration: Optional integration with Polars DataFrames for data analysis

§Quick Start

use edgefirst_client::{Client, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    // Create a new client
    let client = Client::new()?;

    // Authenticate with username and password
    let client = client.with_login("username", "password").await?;

    // List available projects
    let projects = client.projects(None).await?;
    println!("Found {} projects", projects.len());

    Ok(())
}

§Optional Features

  • polars: Enables integration with Polars DataFrames for enhanced data manipulation

Modules§

coco
COCO Dataset Format Support
format
EdgeFirst Dataset Format utilities.
instrument
Conditional instrumentation support for profiling.

Macros§

span
Conditional span creation macro - compiles to no-op when profiling is disabled.
trace_event
Conditional event recording macro - compiles to no-op when profiling is disabled.

Structs§

Annotation
AnnotationSet
The AnnotationSet class represents a collection of annotations in a dataset. A dataset can have multiple annotation sets, each containing annotations for different tasks or purposes.
AnnotationSetID
Unique identifier for an annotation set within a dataset.
AppId
Unique identifier for an application in EdgeFirst Studio.
Artifact
Box2d
Box3d
Client
Main client for interacting with EdgeFirst Studio Server.
Dataset
A dataset in EdgeFirst Studio containing sensor data and annotations.
DatasetID
Unique identifier for a dataset within a project.
DatasetParams
Experiment
ExperimentID
Unique identifier for an experiment within a project.
FileTokenStorage
File-based token storage for desktop platforms.
GpsData
GPS location data (latitude and longitude).
Group
A dataset group for organizing samples into logical subsets.
ImageId
Unique identifier for an image in EdgeFirst Studio.
ImuData
IMU orientation data (roll, pitch, yaw in degrees).
Job
A job (app run) entry returned by Client::jobs.
Label
Location
Location and pose information for a sample.
MaskData
A raster mask stored as PNG-encoded bytes.
MemoryTokenStorage
In-memory token storage (no persistence).
NewValidationSession
Result of client::Client::start_validation_session.
Organization
Organization information and metadata.
OrganizationID
Unique identifier for an organization in EdgeFirst Studio.
Polygon
PresignedUrl
A presigned URL for uploading a file to S3.
Progress
Progress information for long-running operations.
Project
The project class represents a project in the EdgeFirst Studio. A project contains datasets, experiments, and other resources related to a specific task or workflow.
ProjectID
Unique identifier for a project within EdgeFirst Studio.
Sample
A sample in a dataset, typically representing a single image with metadata and optional sensor data.
SampleDimensionUpdate
A single sample dimension update entry.
SampleFile
A file associated with a sample (e.g., LiDAR point cloud, radar data).
SampleID
Unique identifier for a sample within a dataset.
SamplesCountResult
SamplesPopulateParams
Parameters for populating (importing) samples into a dataset.
SamplesPopulateResult
Result from the samples.populate2 API call.
SamplesUpdateDimensionsResult
Result from the samples.update_dimensions API call.
SequenceId
Unique identifier for a sequence in EdgeFirst Studio.
Snapshot
SnapshotFromDatasetResult
Result of creating a snapshot from an existing dataset.
SnapshotID
Unique identifier for a snapshot in EdgeFirst Studio.
SnapshotRestoreResult
Stage
StartValidationRequest
Inputs for client::Client::start_validation_session.
Task
TaskDataList
List of data and chart artefacts attached to a task.
TaskID
Unique identifier for a task in EdgeFirst Studio.
TaskInfo
Timing
Pipeline timing measurements for a sample, in nanoseconds.
TrainingSession
TrainingSessionID
Unique identifier for a training session within an experiment.
ValidationSession
ValidationSessionID
Unique identifier for a validation session within an experiment.

Enums§

AnnotationType
Annotation types supported for labeling data in EdgeFirst Studio.
Error
Comprehensive error type for EdgeFirst Studio Client operations.
FileType
File types supported in EdgeFirst Studio datasets.
Parameter
Generic parameter value used in API requests and configuration.
RetryScope
Retry scope classification for URL-based retry policies.
StorageError
Error type for token storage operations.

Traits§

TokenStorage
Trait for persistent token storage.

Functions§

classify_url
Classifies a URL to determine which retry policy to apply.
samples_dataframe
Create a DataFrame from a slice of samples with the 2026.04 schema.
unflatten_polygon_coordinates
Unflatten coordinates with NaN separators back to nested polygon structure.