| Crates.io | gopro |
| lib.rs | gopro |
| version | 0.1.0 |
| created_at | 2025-11-21 10:32:40.512109+00 |
| updated_at | 2025-11-21 10:32:40.512109+00 |
| description | An open-source Rust implementation of the Open GoPro Interface Specification. |
| homepage | https://github.com/chinifabio/gopro-rs |
| repository | https://github.com/chinifabio/gopro-rs |
| max_upload_size | |
| id | 1943378 |
| size | 4,332 |
gopro-rs is a pure Rust library designed to interface with GoPro cameras programmatically. It serves as a high-performance, memory-safe alternative to the official Python open-gopro SDK, implementing the complete Open GoPro Interface Specification.
Whether you are building a desktop control app, an automated media offloader, or an embedded remote control system, this library provides the primitives you need to discover, connect, and control cameras seamlessly.
While the official Python SDK is excellent for scripting and rapid prototyping, gopro-rs aims to fill the gap for production-grade applications. It offers:
use open_gopro_rs::GoPro;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Scan and connect to the first available camera
let mut camera = GoPro::connect_first().await?;
// Start recording via BLE
camera.shutter(true).await?;
println!("Recording started...");
// Wait 5 seconds
tokio::time::sleep(std::time::Duration::from_secs(5)).await;
// Stop recording
camera.shutter(false).await?;
println!("Recording stopped.");
Ok(())
}