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.
upload_stats
Reliable, Instant-based upload timing accumulators (profiling builds only).

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
ChangelogEntry
A single entry in the dataset changelog, recording one modification.
ChangelogResponse
Paginated response from the version.changelog endpoint.
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
DatasetSummary
Cached metrics summary for a dataset’s current state.
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
A label used to identify annotations in a dataset.
Location
Location and pose information for a sample.
MaskData
A raster mask stored as PNG-encoded bytes.
MemoryTokenStorage
In-memory token storage (no persistence).
NewTrainingSession
Result of client::Client::start_training_session.
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.
RestoreResult
Result from version.tag.restore.
RestoredCounts
Counts of entities restored.
RestoredFrom
Source tag information in a restore result.
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.
SchemaField
A single field descriptor from a trainer or validator parameter schema.
SchemaOption
One selectable option of a select SchemaField.
SequenceId
Unique identifier for a sequence in EdgeFirst Studio.
ServerAnnotation
Annotation data for the server-side annotation.add_bulk API.
Snapshot
SnapshotFromDatasetResult
Result of creating a snapshot from an existing dataset.
SnapshotID
Unique identifier for a snapshot in EdgeFirst Studio.
SnapshotRestoreResult
Stage
StartTrainingRequest
Request payload for client::Client::start_training_session.
StartValidationRequest
Inputs for client::Client::start_validation_session.
Tag
A dataset version tag, as returned by Client::dataset_tags.
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.
TrainerSchemaInfo
Catalog entry describing an available trainer type.
TrainingSession
TrainingSessionID
Unique identifier for a training session within an experiment.
UsageSummary
Billing usage summary for the authenticated user’s organization.
ValidationSession
ValidationSessionID
Unique identifier for a validation session within an experiment.
ValidatorSchema
A validator parameter schema, as returned by Client::validator_schemas.
VersionCurrentResponse
Response from version.current with serial, tags, and summary.
VersionTag
A named version tag that captures a complete dataset state snapshot at a specific serial number. Tags are immutable once created and enable reproducible training and validation by referencing an exact dataset state.

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.
SchemaFieldType
The kind of input a SchemaField describes.
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.