Skip to content

franklin-ai/darwin-v7

Repository files navigation

darwin-v7

Unofficial rust client for the V7 annotation platform

🚧 UNDER CONSTRUCTION

This crate aims to make all the functionality of both versions 1.0 and 2.0 of the V7 API available to applications written in Rust 🦀.

❓ Why is this crate needed?

At franklin-ai much of our code is written in Rust and find that the guarantees provided by the Rust borrow checker and type safety make our data processing pipelines more reliable, secure and much faster than previous pipelines written in Python. Another goal of this crate is to facilitate some ergonomic improvements to the darwin-cli following extensive usage.

This project is completely independent of the Python package provided by V7 labs and is being written using a combination of the publicly available V7 documentation, previous experience and a thorough use of web browser inspectors.

🏗️ State of API Compatibility

The following table summarises the current state of the API compatibility for the crate.

The priorities in listed in the table below are purely driven by internal company goals and requirements. However if specific API endpoints are required please lodge an Issue and we will attempt to prioritise the feature.

API Endpoint API Version Status Rust Method Unit Tested Integration Tested Priority Comments
Annotation Classes
List Annotation Classes 1.0/2.0 🔼
Create Annotation Classes 1.0/2.0 🔼
Update Annotation Classes 1.0/2.0 🔼
Delete Annotation Classes 1.0/2.0 🔼
Async CSV Reports
List Async CSV Reports 2.0 ▶️
Show Async CSV Reports 2.0 ▶️
Create Async CSV Reports 2.0 ▶️
Delete Async CSV Reports 2.0 ▶️
Comments
List comment threads on Item 2.0 🔽️
Create a new comment with new comment thread 2.0 🔽️
Delete comment 2.0 🔽
Update comment 2.0 🔽
Delete a comment thread 2.0 🔽
Update a comment thread 2.0 🔽
List thread comments 2.0 🔽
Create a comment in a thread 2.0 🔽
Datasets
Create Dataset 1.0/2.0 Dataset::create_dataset ▶️
Update Dataset 1.0/2.0 ▶️
List Dataset 1.0/2.0 Dataset::list_datasets ▶️
Show Dataset 1.0/2.0 Dataset::show_dataset ▶️
Show Dataset Details 1.0/2.0 ▶️
List Dataset Items 1.0 Dataset::list_dataset_items ▶️
List Dataset Items 2.0 Dataset::list_dataset_items_v2 ▶️
List Dataset Folders 1.0/2.0 🔽
Show Item Counts 1.0 To be deprecated by V7
Tag Items 1.0 🔽
Untag Items 1.0 🔽
Add Instructions 1.0/2.0 🔼
Get Items Report 1.0/2.0 Dataset::get_item_reports 🔼
Archive Dataset 1.0/2.0 Dataset::archive_dataset ▶️
Add Workforce Managers to Dataset 2.0 🔼
Exports
Generate Export 1.0/2.0 🚧 Dataset::generate_export 🔼 Not all arguments parameterized
Delete Export 1.0/2.0 ▶️
List Exports 1.0/2.0 🚧 🔼️
External Storage
List External Storage Settings 1.0/2.0 🔽️
Show External Storage Endpoint 1.0/2.0 🔽️
Update External Storage 1.0/2.0 🔽️
Create External Storage 1.0/2.0 🔽️
Mark External Storage as default 1.0/2.0 🔽️
Imports
Confirm uploaded files 2.0 🔽️
Register existing data for processing 2.0 🔽️
Get URLs for file upload 2.0 🔽️
Register existing read-only data 2.0 🔽️
Register new data for upload 2.0 🔽️
Items
Set Workflow Stage 1.0 Dataset::set_stage ▶️
Archive 1.0/2.0 🔽️
Restore 1.0/2.0 🔽️
Set Priority 1.0/2.0 🔽️
List Video Frames 1.0 🔽️
Move Items 1.0/2.0 🔽️ v2 equivalent
Register Uploading Items 1.0 🔽️
Get Item counts by classes 2.0 🔽️
Sign m3u8 index for streaming 2.0 ⏬️
List slot sections 2.0 ⏬️
Set Layout 2.0 ⏬️
List Item IDs 2.0 🔽️
List Folders 2.0 ⏬️
Delete Items 2.0 ▶️
List Items 2.0 ▶️
List slot sections with tiles 2.0 🔽️️
Get Item counts by stages 2.0 🔽️️
Get Item counts 2.0 🔽️️
Get Item counts by status 2.0 🔽️️
Get Item 2.0 ▶️️️
Workflow Stages
Assign 1.0 Dataset::set_stage ▶️
Skip 1.0 🔽️️
Unskip 1.0 🔽️️
Complete 1.0 🔽️️
Set Auto-complete 1.0
Workflows
Assign items to user 2.0 WorkflowV2::assign_items ▶️
Execute commands for item 2.0 ▶️
Request work batch 2.0 ▶️
Set Stage 2.0 ▶️
List Workflows 2.0 WorkflowV2::list_workflows ▶️
Create Workflows 2.0 Dataset::set_workflow_v2 ▶️
Archive Workflows 2.0 ▶️
Get Workflows 2.0 Dataset::get_workflows_v2 ▶️
Update Workflows 2.0 ▶️
Unlink dataset from a workflow by workflow id 2.0 ▶️
Teams
List Memberships 1.0/2.0 Team::list_memberships ▶️
Create Invitations 1.0 Team::list_memberships ▶️
Time Tracking
Get time summary 2.0 ▶️
Webhooks
Index 1.0
Create 1.0
Update 1.0
Delete 1.0
Webhooks V2
Get responses by workflow id 1.0
Get responses by workflow id and stage id 1.0
Test webhook endpoint 1.0