/ Cargo.toml
Cargo.toml
 1  [workspace]
 2  resolver = "3"
 3  exclude = ["ml"]
 4  default-members = ["firmware"]
 5  members = [
 6      ".",
 7      "web",
 8      "tui",
 9      "firmware",
10      "tests/e2e",
11      "apps/readme",
12      "apps/microtop",
13  ]
14  
15  [package]
16  publish = false
17  edition = "2024"
18  version = "0.1.0"
19  name = "microvisor"
20  default-run = "loco"
21  license = "GNU GPL 3.0"
22  
23  [[bin]]
24  name = "loco"
25  path = "src/bin/main.rs"
26  required-features = []
27  
28  [workspace.dependencies]
29  serde_json = "1"
30  defmt = "1.0.1"
31  embedded-io = "0.7.1"
32  embassy-time = "0.5.0"
33  embassy-executor = "0.10"
34  embedded-io-async = "0.7.0"
35  dioxus-sdk-time = "0.7.0"
36  loco-rs = "0.16.4"
37  dioxus-primitives.path = "libs/primitives"
38  serde = { version = "1", features = ["derive"] }
39  tracing = { version = "0.1", features = ["std"] }
40  ratatui = { version = "0.30.0", default-features = false }
41  lucide-dioxus = { version = "2.45.0", features = ["all-icons"] }
42  dioxus = { version = "0.7.5", features = ["router", "fullstack"] }
43  
44  [dev-dependencies]
45  serial_test = "3.1.1"
46  rstest = "0.21.0"
47  loco-rs = { workspace = true, features = ["testing"] }
48  insta = { version = "1.34.0", features = ["redactions", "yaml", "filters"] }
49  
50  [dependencies]
51  serde.workspace = true
52  loco-rs.workspace = true
53  serde_json.workspace = true
54  chrono = "0.4"
55  circular-buffer = "1"
56  include_dir = "0.7"
57  scalar_api_reference = "0.1"
58  colored_json = "5"
59  validator = "0.20"
60  axum = "0.8.1"
61  unic-langid = "0.9.4"
62  regex = "1.11.1"
63  tracing = "0.1.40"
64  async-trait = "0.1.74"
65  migration.path = "migration"
66  loco-openapi = { version = "0.1", features = ["full"] }
67  serial = "0.4"
68  uuid = { version = "1.6.0", features = ["v4"] }
69  axum-extra = { version = "0.12", features = ["form"] } # /view engine
70  fluent-templates = { version = "0.8.0", features = ["tera"] } # view engine i18n
71  tracing-subscriber = { version = "0.3.17", features = ["env-filter", "json"] }
72  tokio = { version = "1.33.0", default-features = false, features = [
73      "rt-multi-thread",
74  ] }
75  sea-orm = { version = "1.1.19", features = [
76      "macros",
77      "sqlx-sqlite",
78      "sqlx-postgres",
79      "runtime-tokio-rustls",
80  ] }
81  crc32fast = "1.4"
82  vedirect_rs = "0.2.2"
83  
84  [profile.dev]
85  # Rust debug is too slow.
86  # For debug builds always builds with some optimization
87  debug = true
88  # opt-level = 3
89  opt-level = "s"
90  
91  [profile.release]
92  # debug = 2             # full debug symbols — adds to binary size, enable for profiling
93  codegen-units = 1 # LLVM can perform better optimizations using a single thread
94  # opt-level = 3          # max speed — produces 30MB WASM, bad for firmware flash too
95  opt-level = "z"        # min size — halves WASM (~15MB), better for ESP32 flash. all targets are IO-bound.
96  lto = "fat"
97  incremental = false
98  overflow-checks = true # was false — silent integer wrapping is dangerous for sensor math
99  # debug-assertions = false  # already the default for release