Crates.io | govee-api |
lib.rs | govee-api |
version | 1.3.6 |
source | src |
created_at | 2023-07-23 21:05:17.740819 |
updated_at | 2024-04-03 14:38:23.348608 |
description | A blazingly fast thin wrapper around the public Govee API written in Rust |
homepage | https://github.com/mgierada/govee |
repository | https://github.com/mgierada/govee |
max_upload_size | |
id | 923992 |
size | 117,547 |
"Image generated by Dalle 3-XL"
All REST methods of the official public Govee API are supported. See the table below for mapping of methods to endpoints.
is supported | endpoint | method |
---|---|---|
yes | GET /v1/appliance/devices | get_appliances |
yes | PUT /v1/appliance/devices/control | control_appliance |
yes | GET /v1/devices | get_devices |
yes | PUT /v1/devices/control | control_device |
yes | GET /v1/devices/state | get_device_state |
To use the library you need to obtain a Govee Developer API key and set it to GOVEE_API_KEY
env variable. It is highly suggested to use .env file.
See below a short manual copied directly from the Govee API documentation. Please refer to that documentation in case the info below is not sufficient or it changed over time.
đź“‹ Steps to obtain a Govee Developer API Key
It is dead simple to use the govee-api
library.
// make sure to run this inside an async function
const GOVEE_API_KEY: &str = "GOVEE_API_KEY"; // for the sake of security, please make sure this is read from env variable.
let govee_client = GoveeClient::new(&GOVEE_API_KEY);
// use any of the supported method from the table above
// example for get_devices()
let response: ApiResponseGoveeDevices = govee_client.get_devices().await;
let devices = response.data.unwrap();
See this repo for an inspiration how to use govee-api
in various scenarios.
I decided to go with the semantic versioning with the following understanding:
patch
release should not break the existing functionality. It is usually dependencies or readme update, some minor refactor or other things that are usually safe to be pulled anytime.minor
release may break parts of the app using govee-api
. Minor release often includes new functionality or some relevant refactor with a limited scope that improves the library performance.major
release will very likely break large parts of the app that implements govee-api
crate. This includes changes in GoveeAPI itself or some significant changes in the crate architecture.Usually, the latest published version is strongly suggested for all users.