[package]
edition = "2024"
name = "rmk"
version = "0.8.3"
authors = ["Haobo Gu <haobogu@outlook.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Keyboard firmware written in Rust"
homepage = "https://github.com/haobogu/rmk"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/haobogu/rmk"
resolver = "2"
[package.metadata.docs.rs]
features = [
"split",
"vial",
"async_matrix",
"_ble",
]
[features]
_ble = [
"dep:trouble-host",
"dep:rand_core",
"dep:bt-hci",
"storage",
]
_esp_ble = [
"_ble",
"dep:esp-hal",
]
_no_usb = []
_nrf_ble = [
"_ble",
"dep:embassy-nrf",
]
adafruit_bl = ["_nrf_ble"]
async_matrix = []
col2row = []
controller = []
default = [
"defmt",
"storage",
"vial",
"vial_lock",
]
defmt = [
"dep:defmt",
"rmk-types/defmt",
"embedded-hal/defmt-03",
"embedded-hal-async/defmt-03",
"embedded-io-async/defmt-03",
"embassy-time/defmt",
"embassy-usb/defmt",
"embassy-sync/defmt",
"embassy-futures/defmt",
"embassy-executor/defmt",
"usbd-hid/defmt",
"sequential-storage/defmt",
"embassy-nrf?/defmt",
"postcard/use-defmt",
"trouble-host?/defmt",
"bt-hci?/defmt",
"heapless/defmt",
]
esp32c3_ble = [
"_esp_ble",
"_no_usb",
]
esp32c6_ble = [
"_esp_ble",
"_no_usb",
]
esp32s3_ble = ["_esp_ble"]
host = []
log = [
"dep:log",
"trouble-host?/log",
]
nrf52810_ble = [
"_nrf_ble",
"_no_usb",
]
nrf52811_ble = [
"_nrf_ble",
"_no_usb",
]
nrf52832_ble = [
"_nrf_ble",
"_no_usb",
]
nrf52833_ble = ["_nrf_ble"]
nrf52840_ble = ["_nrf_ble"]
pico_w_ble = [
"_ble",
"dep:embassy-rp",
]
rp2040 = [
"dep:embassy-rp",
"dep:embassy-hal-internal",
"dep:rp-pac",
"dep:pio",
"dep:fixed",
]
split = [
"controller",
"trouble-host?/gatt-client-notification-queue-size-4",
]
std = [
"embassy-executor/arch-std",
"embassy-executor/executor-thread",
"embassy-time/std",
"embassy-time/generic-queue-128",
"critical-section?/std",
]
storage = [
"dep:embedded-storage",
"dep:embedded-storage-async",
]
usb_log = [
"dep:embassy-usb-logger",
"log",
]
vial = ["host"]
vial_lock = ["vial"]
[lib]
name = "rmk"
path = "src/lib.rs"
doctest = false
[[test]]
name = "keyboard_combo_test"
path = "tests/keyboard_combo_test.rs"
[[test]]
name = "keyboard_layer_test"
path = "tests/keyboard_layer_test.rs"
[[test]]
name = "keyboard_macro_test"
path = "tests/keyboard_macro_test.rs"
[[test]]
name = "keyboard_morse_hold_on_other_press_test"
path = "tests/keyboard_morse_hold_on_other_press_test.rs"
[[test]]
name = "keyboard_morse_hrm_test"
path = "tests/keyboard_morse_hrm_test.rs"
[[test]]
name = "keyboard_morse_permissive_hold_test"
path = "tests/keyboard_morse_permissive_hold_test.rs"
[[test]]
name = "keyboard_morse_tap_dance_test"
path = "tests/keyboard_morse_tap_dance_test.rs"
[[test]]
name = "keyboard_morse_test"
path = "tests/keyboard_morse_test.rs"
[[test]]
name = "keyboard_one_shot_test"
path = "tests/keyboard_one_shot_test.rs"
[dependencies.bitfield-struct]
version = "0.12"
[dependencies.bt-hci]
version = "0.6"
optional = true
[dependencies.byteorder]
version = "1"
default-features = false
[dependencies.critical-section]
version = "1.2"
optional = true
[dependencies.defmt]
version = "1.0"
optional = true
[dependencies.document-features]
version = "0.2"
[dependencies.embassy-embedded-hal]
version = "0.5"
[dependencies.embassy-executor]
version = "0.9"
[dependencies.embassy-futures]
version = "0.1"
[dependencies.embassy-hal-internal]
version = "0.3.0"
optional = true
[dependencies.embassy-nrf]
version = "0.8"
features = [
"unstable-pac",
"time",
]
optional = true
[dependencies.embassy-rp]
version = "0.8"
optional = true
[dependencies.embassy-sync]
version = "0.7"
[dependencies.embassy-time]
version = "0.5"
[dependencies.embassy-usb]
version = "0.5"
features = [
"max-interface-count-8",
"max-handler-count-8",
]
[dependencies.embassy-usb-logger]
version = "0.5"
optional = true
[dependencies.embedded-hal]
version = "1.0.0"
[dependencies.embedded-hal-async]
version = "1.0.0"
[dependencies.embedded-io-async]
version = "0.6"
[dependencies.embedded-storage]
version = "0.3"
optional = true
[dependencies.embedded-storage-async]
version = "0.4"
optional = true
[dependencies.esp-hal]
version = "1.0"
optional = true
[dependencies.fixed]
version = "1.28.0"
optional = true
[dependencies.futures]
version = "0.3"
features = ["async-await"]
default-features = false
[dependencies.heapless]
version = "0.9"
[dependencies.log]
version = "0.4"
optional = true
[dependencies.paste]
version = "1"
[dependencies.pio]
version = "0.3.0"
optional = true
[dependencies.postcard]
version = "1"
features = ["experimental-derive"]
[dependencies.rand_core]
version = "0.6"
optional = true
[dependencies.rmk-macro]
version = "=0.7.1"
[dependencies.rmk-types]
version = "=0.2.2"
[dependencies.rp-pac]
version = "7.0.0"
optional = true
[dependencies.sequential-storage]
version = "6.0"
[dependencies.serde]
version = "1"
features = ["derive"]
default-features = false
[dependencies.ssmarshal]
version = "1.0"
default-features = false
[dependencies.static_cell]
version = "2"
[dependencies.strum]
version = "0.27"
features = ["derive"]
default-features = false
[dependencies.trouble-host]
version = "0.5.1"
features = [
"gatt",
"scan",
"derive",
"security",
]
optional = true
[dependencies.usbd-hid]
version = "0.9"
[dev-dependencies.critical-section]
version = "1.2"
[dev-dependencies.ctor]
version = "0.6.0"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.rusty-fork]
version = "0.3.0"
[build-dependencies.chrono]
version = "0.4"
[build-dependencies.const-gen]
version = "1.6"
[build-dependencies.crc32fast]
version = "1.3"
[build-dependencies.rmk-config]
version = "=0.6.1"
[build-dependencies.serde]
version = "1.0"
[build-dependencies.serde_derive]
version = "1.0"
[build-dependencies.toml]
version = "0.9"
[target.'cfg(all(target_arch = "arm", target_os = "none"))'.dependencies.cortex-m]
version = "0.7"