GPhoto2-rs

Rust bindings to libgphoto2

What about gphoto-rs?

I know about the other crate (gphoto and gphoto2-sys which was created by @dcuddeback, but it is missing a lot of features which make the crate unusable for me, most notably the ability to change camera settings and in memory file download.
The author hasn't been active since 2017 regardless of numerous pull- and feature requests, so I made a new project with a more up to date rust code and all the features from libgphoto2.

Features

Gettings started

Installation

Run cargo add gphoto2 to add gphoto2 to your project or add this to your Cargo.toml:

toml [dependencies] gphoto2 = "1"

Install libgphoto2

The libgphoto2 library must be installed on your system to use this library.

To install libgphoto2 on Debian based systems run:

sh sudo apt install libgphoto2-dev

On Arch systems run:

sh sudo pacman -S libgphoto2

On MacOS systems with Homebrew run:

sh homebrew install libgphoto2

Windows

There is no official way to install libgphoto2 on windows, but you can install it with MSYS2 (link to the package: mingw-w64-libgphoto2).

Basic Usage

This example takes a picture and saves it to disk

```rust no_run use gphoto2::{Context, Result}; use std::path::Path;

fn main() -> Result<()> { // Create a new context and detect the first camera from it let camera = Context::new()?.autodetect_camera().expect("Failed to autodetect camera");

// And take pictures let filepath = camera.captureimage().expect("Could not capture image"); filepath .download(&camera, Path::new(&filepath.name().to_string())) .expect("Failed to download image");

// For more advanced examples take a look at the examples/ folder

Ok(()) } ```

You can find more examples here

Stability

In general all all APIs should be stable, I've tested the ones my camera supported and found no bugs so far.
If you encounter an error like BAD_PARAMETERS or found a bug, please create an issue on GitHub.

License

Copyright © 2022 Maxicarlos08 maxicarlos08@gmail.com

This library uses the libgphoto2 library, which is licensed under the LGPL version 2.1.