# Dygma Focus API (Rust) [crates.io](https://crates.io/crates/dygma_focus) ## About This crate is a Rust implementation of the Dygma Focus API. Make sure to not have Bazecor running and connected while trying to communicate with your keyboard. ## Usage Cargo.toml ```toml [dependencies] anyhow = "1.0" dygma_focus = { version = "0.4", default-features = false, features = ["is_async"] } tokio = { version = "1", features = ["full"] } ``` You can set the features to `is_async` or `is_sync` depending on your use case, default is `is_async`. src/main.rs ```rust use anyhow::Result; use dygma_focus::prelude::*; #[tokio::main] async fn main() -> Result<()> { // Open the first device found and declare as mutable // Other constructors are under Focus::new_* let mut focus = Focus::new_first_available()?; // Here is an example method, most have a get and set method // There are also other methods for triggering macros or switching layers for example println!("version: {}", &focus.version().await?); Ok(()) } ``` ## Projects using this crate [Dygma Layer Switcher](https://github.com/mbwilding/dygma-layer-switcher)