openseries-gg 1.0.0

Control supported SteelSeries headsets and mice from the command line or Rust
Documentation
[package]
name = "openseries-gg"
version = "1.0.0"
edition = "2024"
license = "MIT"
authors = ["Pico"]
description = "Control supported SteelSeries headsets and mice from the command line or Rust"
repository = "https://github.com/PicoShot/openseries-gg"
homepage = "https://github.com/PicoShot/openseries-gg"
documentation = "https://docs.rs/openseries-gg"
readme = "README.md"
keywords = ["steelseries", "hid", "headset", "mouse", "cli"]
categories = ["command-line-utilities", "hardware-support"]
default-run = "openseries"
include = [
    "Cargo.lock",
    "Cargo.toml",
    "LICENSE",
    "README.md",
    "assets/showcase.gif",
    "src/**",
]

[workspace]
resolver = "3"
members = ["examples/chatmix-bar", "examples/mouse-police-lights"]

[workspace.package]
version = "1.0.0"
edition = "2024"
license = "MIT"
repository = "https://github.com/PicoShot/openseries-gg"

[workspace.dependencies]
ctrlc = "3.5.0"

[lib]
name = "openseries"
path = "src/lib.rs"

[[bin]]
name = "openseries"
path = "src/cli/main.rs"
required-features = ["cli"]

[features]
default = ["cli"]
cli = [
    "dep:anstream",
    "dep:anstyle",
    "dep:clap",
    "dep:comfy-table",
    "dep:inquire",
    "dep:serde",
    "dep:serde_json",
]

[dependencies]
anstream = { version = "1.0.0", optional = true }
anstyle = { version = "1.0.13", optional = true }
bitflags = "2.9.4"
clap = { version = "4.6.4", features = ["derive"], optional = true }
comfy-table = { version = "7.2.2", default-features = false, optional = true }
inquire = { version = "0.9.4", default-features = false, features = [
    "crossterm",
], optional = true }
serde = { version = "1.0.228", features = ["derive"], optional = true }
serde_json = { version = "1.0.151", optional = true }
sha2 = "0.11.0"
thiserror = "2.0.17"

[target.'cfg(target_os = "linux")'.dependencies]
hidapi = { version = "2.6.6", default-features = false, features = [
    "linux-static-hidraw",
] }

[target.'cfg(target_os = "windows")'.dependencies]
hidapi = { version = "2.6.6", default-features = false, features = [
    "windows-native",
] }

[target.'cfg(target_os = "macos")'.dependencies]
hidapi = { version = "2.6.6", default-features = false, features = [
    "macos-shared-device",
] }

[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
strip = true