device-kit 0.0.1-alpha

Experimental composable, async device abstractions for Raspberry Pi Pico using Embassy (use from GitHub for latest features)
[[bin]]
name = "led12x4"
path = "tests-compile-only/led12x4.rs"
required-features = ["pico1"]

[[bin]]
name = "led2d_custom_mapping"
path = "tests-compile-only/led2d_custom_mapping.rs"
required-features = ["pico1"]

[[bin]]
name = "led2d_multiple"
path = "tests-compile-only/led2d_multiple.rs"
required-features = ["pico1"]

[dependencies.cortex-m]
optional = true
version = "0.7.7"

[dependencies.cortex-m-rt]
optional = true
version = "0.7.5"

[dependencies.crc32fast]
default-features = false
version = "1.4.0"

[dependencies.critical-section]
default-features = false
version = "1.2.0"

[dependencies.defmt]
version = "0.3.10"

[dependencies.defmt-rtt]
version = "1.1.0"

[dependencies.derive_more]
default-features = false
features = ["debug", "display", "error", "from"]
version = "2.0.1"

[dependencies.embassy-executor]
default-features = false
features = ["executor-thread", "defmt"]
version = "0.9"

[dependencies.embassy-futures]
version = "0.1"

[dependencies.embassy-hal-internal]
default-features = false
optional = true
version = "0.2"

[dependencies.embassy-rp]
default-features = false
features = ["rt", "defmt", "time-driver", "critical-section-impl"]
optional = true
version = "0.2"

[dependencies.embassy-sync]
version = "0.6"

[dependencies.embassy-time]
features = ["defmt"]
version = "0.3"

[dependencies.embedded-graphics]
default-features = false
version = "0.8"

[dependencies.embedded-hal]
version = "1.0.0"

[dependencies.embedded-hal-async]
version = "1.0.0"

[dependencies.embedded-hal-bus]
features = ["async", "portable-atomic"]
version = "0.3.0"

[dependencies.embedded-io-async]
version = "0.6.1"

[dependencies.esp-hal-mfrc522]
version = "0.3.2"

[dependencies.fixed]
version = "1.28.0"

[dependencies.hd44780-driver]
version = "0.4.0"

[dependencies.heapless]
features = ["serde"]
version = "0.8.0"

[dependencies.itertools]
default-features = false
version = "0.13.0"

[dependencies.panic-probe]
features = ["print-defmt"]
version = "1.0.0"

[dependencies.paste]
version = "1.0"

[dependencies.png]
optional = true
version = "0.17"

[dependencies.portable-atomic]
features = ["critical-section"]
version = "1.11.1"

[dependencies.postcard]
default-features = false
version = "1.0"

[dependencies.riscv]
features = ["critical-section-single-hart"]
optional = true
version = "0.11"

[dependencies.riscv-rt]
optional = true
version = "0.12"

[dependencies.rp235x-hal]
features = ["rt"]
optional = true
package = "rp235x-hal"
version = "0.3"

[dependencies.serde]
default-features = false
features = ["derive"]
version = "1.0"

[dependencies.smart-leds]
version = "0.4.0"

[dependencies.static_cell]
version = "2.1.0"

[dependencies.tempfile]
optional = true
version = "3.13"

[dependencies.time]
default-features = false
version = "0.3"

[[example]]
name = "blinky"
path = "examples/blinky.rs"

[[example]]
name = "clock_console"
path = "examples/clock_console.rs"

[[example]]
name = "clock_lcd"
path = "examples/clock_lcd.rs"

[[example]]
name = "clock_led12x4"
path = "examples/clock_led12x4.rs"

[[example]]
name = "clock_led4_wifi"
path = "examples/clock_led4_wifi.rs"

[[example]]
name = "clock_led8x12"
path = "examples/clock_led8x12.rs"

[[example]]
name = "clock_servos"
path = "examples/clock_servos.rs"

[[example]]
name = "clock_simple"
path = "examples/clock_simple.rs"

[[example]]
name = "flash"
path = "examples/flash.rs"

[[example]]
name = "full"
path = "examples/full.rs"

[[example]]
name = "ir"
path = "examples/ir.rs"

[[example]]
name = "ir_kepler"
path = "examples/ir_kepler.rs"

[[example]]
name = "led2d"
path = "examples/led2d.rs"

[[example]]
name = "led8x12"
path = "examples/led8x12.rs"

[[example]]
name = "led_strip"
path = "examples/led_strip.rs"

[[example]]
name = "led_strip_simple"
path = "examples/led_strip_simple.rs"

[[example]]
name = "led_strip_simple_two"
path = "examples/led_strip_simple_two.rs"

[[example]]
name = "led_strip_snake"
path = "examples/led_strip_snake.rs"

[[example]]
name = "servos"
path = "examples/servos.rs"

[[example]]
name = "wifi_auto"
path = "examples/wifi_auto.rs"

[features]
arm = ["dep:cortex-m", "dep:cortex-m-rt", "embassy-executor/arch-cortex-m", "dep:embassy-hal-internal", "embassy-hal-internal/cortex-m", "embassy-hal-internal/prio-bits-2", "critical-section/restore-state-u8"]
default = ["defmt", "pico1", "arm"]
defmt = []
display-trace = []
host = ["dep:png", "dep:tempfile"]
pico1 = ["dep:embassy-rp"]
pico2 = ["dep:embassy-rp", "dep:rp235x-hal"]
riscv = ["dep:riscv", "dep:riscv-rt", "embassy-executor/arch-riscv32", "dep:embassy-hal-internal", "critical-section/restore-state-bool"]

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

[lints.clippy]
allow_attributes = "warn"
allow_attributes_without_reason = "deny"
arithmetic_side_effects = "deny"
enum_glob_use = "forbid"
enum_variant_names = "warn"
equatable_if_let = "warn"
error_impl_error = "allow"
float_cmp_const = "deny"
implicit_return = "allow"
indexing_slicing = "deny"
integer_division_remainder_used = "warn"
items-after-statements = "warn"
iter_nth_zero = "warn"
match-same-arms = "warn"
match_bool = "warn"
min_ident_chars = "warn"
missing_errors_doc = "warn"
missing_trait_methods = "warn"
module_name_repetitions = "warn"
multiple_crate_versions = "allow"
must_use_candidate = "warn"
obfuscated_if_else = "warn"
pub_use = "allow"
pub_with_shorthand = "warn"
question_mark_used = "allow"
self_named_module_files = "warn"
semicolon_if_nothing_returned = "warn"
semicolon_inside_block = "warn"
semicolon_outside_block = "warn"
separated_literal_suffix = "warn"
shadow_reuse = "warn"
shadow_unrelated = "warn"
similar_names = "warn"
single_call_fn = "allow"
std_instead_of_alloc = "warn"
std_instead_of_core = "warn"
str_to_string = "warn"
too_long_first_doc_paragraph = "warn"
unnecessary_wraps = "warn"
unreachable = "warn"
unused_must_use = "warn"
unused_result = "deny"
unwrap_used = "deny"
wildcard_imports = "deny"

[lints.clippy.all]
level = "warn"
priority = -2

[lints.clippy.missing_docs_in_private_items]
level = "allow"
priority = -1

[lints.clippy.nursery]
level = "warn"
priority = -2

[lints.clippy.pedantic]
level = "deny"
priority = -2

[lints.rust]
bare_trait_objects = "forbid"
unexpected_cfgs = "warn"
unfulfilled_lint_expectations = "warn"
unknown_lints = "warn"
unsafe_code = "deny"
unused_variables = "warn"

[lints.rust.rust_2018_idioms]
level = "warn"
priority = -2

[package]
authors = ["Carl M. Kadie"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["embedded", "no-std", "hardware-support"]
description = "Experimental composable, async device abstractions for Raspberry Pi Pico using Embassy (use from GitHub for latest features)"
edition = "2024"
keywords = ["embedded", "pico", "embassy", "async", "no-std"]
license = "MIT OR Apache-2.0"
name = "device-kit"
readme = "README.md"
repository = "https://github.com/CarlKCarlK/device-kit"
version = "0.0.1-alpha"

[profile.dev]
panic = "abort"

[profile.release]
debug = 2
panic = "abort"

[[test]]
name = "led2d_text_render"
path = "tests/led2d_text_render.rs"
required-features = ["host"]