-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
122 lines (105 loc) · 4.17 KB
/
Copy pathCargo.toml
File metadata and controls
122 lines (105 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
[package]
name = "LyMonS"
version = "0.4.12"
edition = "2024"
description = "An LMS Monitor For The Future — This LyMonS worth the squeeze"
license = "Apache-2.0"
authors = ["shunte88"]
[lib]
name = "lymons"
[workspace]
members = [
".",
"drivers/lymons-driver-ssd1306",
"drivers/lymons-driver-ssd1309",
"drivers/lymons-driver-sh1106",
"drivers/lymons-driver-ssd1322",
]
[build-dependencies]
chrono = "0.4.41"
[dependencies]
chrono = { version = "0.4.41", features = ["serde"] }
clap = { version = "4.5.39", features = ["derive"] }
display-interface = "0.5.0"
embedded-graphics = "0.8.1"
embedded-graphics-framebuf = "0.5.0"
embedded-text = "0.7.2"
embedded-hal = "1.0.0"
linux-embedded-hal = "0.4.0"
env = "1.0.1"
env_logger = "0.11.8"
log = "0.4.27"
reqwest = { version = "0.12.23", default-features = false, features = ["json", "rustls-tls", "stream", "charset", "http2", "macos-system-configuration"] }
serde = { version = "1.0.225", features = ["derive"] }
serde_json = "1.0.145"
serde_yaml = "0.9"
dirs-next = "2.0"
ssd1306 = { version = "0.10.0", optional = true }
ssd1309 = { version = "0.4.0", optional = true }
ssd1322 = { version = "0.3.0", optional = true }
sh1106 = { version = "0.5.0", optional = true }
thiserror = "2.0.12"
anyhow = "1.0.98"
translators = { version = "0.1.5", features = ["google", "tokio-async"] }
tokio = { version = "1.47.1", features = ["full","rt-multi-thread"] }
mini-moka = "0.10.3"
async-compression = { version = "0.4.25", features = ["gzip", "futures-io"] }
flate2 = "1.1.2"
rand = "0.9.2"
mac_address = "1.1.8"
arrayvec = "0.7.6" # For stack-allocated strings in hot paths
regex = "1.10.3"
zip = { version = "2", default-features = false, features = ["deflate"] }
# Plugin system for dynamic driver loading
libloading = { version = "0.8", optional = true }
# Display Emulator (optional for desktop testing)
pixels = { version = "0.13", optional = true }
winit = { version = "0.28", optional = true }
winit_input_helper = { version = "0.14", optional = true }
# SVG Rendering (optimized features)
tiny-skia = { version = "0.11.4", default-features = false, features = ["std"] } # Explicitly control tiny-skia features
resvg = { version = "0.45.1" }
usvg = { version = "0.45.1" }
# Real hardware dependency (only compiled if `emulated-hardware` feature is OFF)
rppal = { version = "0.14", optional = true }
# Emulated hardware dependency (only compiled if `emulated-hardware` feature is ON)
# rpi-hal-emulated = { path = "../rpi-hal-emulated", optional = true } # Disabled - path not available
libc = "0.2.174"
rustfft = "6.4.0"
local-ip-address = "0.6.5"
memmap2 = "0.9.8"
mipidsi = { version = "0.10.0", optional = true }
image = { version = "0.25", default-features = false, features = ["jpeg"] }
num-integer = "0.1.46"
ab_glyph = "0.2.32"
[profile.release]
opt-level = "s" # "z" we prioritize size over speed, "s" is balanced
lto = true # enable link-time optimization
codegen-units = 1 # fewer parallel codegen units, better optimization
panic = "abort" # strip panic backtrace machinery
strip = true # requires Rust 1.70+, automatically strips symbols
#strip = "debuginfo" # requires Rust 1.70+, automatically strips symbols
#strip = "metadata" # requires Rust 1.70+, automatically strips symbols
[features]
# Default: All drivers + plugin system (hybrid mode)
default = ["all-drivers", "plugin-system"]
# Individual driver features
driver-ssd1306 = ["dep:ssd1306"]
driver-ssd1309 = ["dep:ssd1309"]
driver-ssd1322 = ["dep:ssd1322"]
driver-sh1106 = ["dep:sh1106"]
driver-sh1122 = []
driver-st7789 = ["dep:mipidsi"]
driver-st7796s = ["dep:mipidsi"]
# Convenience features
all-drivers = ["driver-ssd1306", "driver-ssd1309", "driver-ssd1322", "driver-sh1106", "driver-sh1122", "driver-st7789", "driver-st7796s"]
# Plugin system for dynamic driver loading
plugin-system = ["dep:libloading"]
# Plugin-only mode (minimal binary, requires plugins)
plugin-only = ["plugin-system"]
# Minimal embedded build (use with --no-default-features)
embedded = ["driver-ssd1306"]
embedded-ssd1322 = ["driver-ssd1322"]
embedded-sh1106 = ["driver-sh1106"]
# Display emulator for desktop testing
emulator = ["dep:pixels", "dep:winit", "dep:winit_input_helper"]