-
Notifications
You must be signed in to change notification settings - Fork 9
/
Cargo.toml
120 lines (101 loc) · 4.4 KB
/
Cargo.toml
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
[package]
name = "pigg"
version = "0.5.0"
edition = "2021"
description = "A Graphical User Interface for interacting with local and remote Raspberry Pi and Pi Pico Hardware"
default-run = "piggui"
authors = ["Andrew Mackenzie <andrew@mackenzie-serres.net>", "Sundaram Krishnan <krishnsundaram@gmail.com>"]
license = "Apache-2.0"
documentation = "https://github.com/andrewdavidmackenzie/pigg/README.md"
repository = "https://github.com/andrewdavidmackenzie/pigg/"
homepage = "https://github.com/andrewdavidmackenzie/pigg/"
readme = "README.md"
exclude = [".cargo", ".git", ".github", ".idea", "assets/", "configs/", "tests/", "wix/", ".gitignore", "codecov.yml",
"Makefile"]
rust-version = "1.80"
[workspace]
exclude = ["porky"]
[package.metadata.wix]
upgrade-guid = "7DCB054F-6CE0-4914-876E-AEA0C2E91328"
path-guid = "17155407-8DA8-45BD-8C67-91FE4C7E99AA"
license = false
eula = false
[[bin]]
name = "piggui"
path = "src/piggui.rs"
[[bin]]
name = "piglet"
path = "src/piglet.rs"
[features]
default = ["iroh", "tcp", "usb-raw", "discovery"]
iroh = ["iroh-net"]
tcp = ["portpicker", "local-ip-address"]
discovery = []
no_std = []
usb-raw = ["nusb"]
[dependencies]
# Optional Dependencies
iroh-net = { version = "0.28.1", default-features = false, optional = true }
portpicker = { version = "0.1.1", default-features = false, optional = true }
local-ip-address = { version = "0.6.3", default-features = false, optional = true }
nusb = { version = "0.1.12", default-features = false, optional = true }
# use in piggui and piglet
chrono = { version = "0.4", default-features = false, features = ["now", "serde"] }
serde = { version = "1.0.215", default-features = false, features = ["derive"] }
serde_arrays = { version = "0.1.0", default-features = false }
# for config serialization to/from file
serde_json = { version = "1.0.133", default-features = false, features = ["std"] }
# for alloc/no_alloc over the wire serialization/deserialization
postcard = { version = "1.0.10", features = ["alloc"] }
heapless = { version = "0.8.0", default-features = false, features = ["serde"] }
rand = { version = "0.8.5", default-features = false, features = ["std", "std_rng"] }
tracing-subscriber = { version = "0.3.18", default-features = false, features = ["fmt", "env-filter"] }
anyhow = { version = "1", default-features = false, features = ["std"] }
futures = { version = "0.3.31", default-features = false }
tokio = { version = "1.41", default-features = false, features = ["time", "rt", "macros"] }
# used in piglet only
log = { version = "0.4.22", default-features = false }
# used by piggui in GUI only
iced_aw = { version = "0.11", default-features = false, features = ["menu"] }
iced_futures = { version = "0.13", default-features = false }
plotters-iced = { version = "0.11", default-features = false }
plotters = { version = "0.3", default-features = false, features = [
"chrono",
"line_series",
] }
tracing = { version = "0.1.40", default-features = false }
once_cell = { version = "1.20.2", default-features = false }
lyon_algorithms = { version = "1.0", default-features = false }
async-std = "1.13"
webbrowser = { version = "1.0", default-features = false }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
tempfile = "3"
serial_test = "3.1.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
sysinfo = { version = "0.32.0", default-features = false, features = ["system"] }
service-manager = { version = "0.7.1", default-features = false }
rfd = "0.15.1"
clap = { version = "4.5.21", default-features = false, features = ["std", "help", "error-context"] }
# Raspberry Pi specific dependencies
[target.'cfg(any(all(target_arch = "aarch64", target_os = "linux"), target_arch = "arm"))'.dependencies]
# Use 'tiny-skia' renderer in iced
iced = { version = "0.13.1", default-features = false, features = ["tokio", "tiny-skia"] }
rppal = "0.19.0"
libc = "0.2.164"
# Non-Raspberry Pi - use 'wgpu' renderer in iced
[target.'cfg(not(any( all(target_arch = "aarch64", target_os = "linux"), target_arch = "arm" )))'.dependencies]
iced = { version = "0.13.1", default-features = false, features = ["tokio", "wgpu"] }
[profile.release]
opt-level = "s"
lto = "fat"
panic = "abort"
strip = "debuginfo"
# The profile that 'cargo dist' will build with
[profile.dist]
inherits = "release"
[package.metadata.cargo-all-features]
skip_optional_dependencies = true
denylist = ["no_std"]
[package.metadata.docs.rs]
features = ["iroh", "tcp"]
rustdoc-args = ["--cfg", "docsrs"]