Files
netris-nestri/Cargo.toml
T
451b495de6 feat: controller/gamepad support (#350)
Adds `nesgamepad`, basically "diet-coke vimputti" for Nestri's microVM
needs here.

Comes with direct mapping for:
- Sony
  - DualShock 4 (v2), DualSense
- Microsoft
  - Xbox 360 pad, Xbox One S pad
- Nintendo
  - Pro Controller
- Generic pad for unknown controllers

---------

Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:50:02 +03:00

57 lines
1.8 KiB
TOML

# The Rust half of this monorepo. The JS/TS half is `package.json`.
#
# Layout, per the same rule on both sides: split by *what a thing is*, not by
# what language it is written in.
#
# apps/ deployables — a binary someone runs
# crates/ shared Rust — a library another crate depends on
# packages/ shared JS/TS
#
# Members are added as components move in. An empty list is honest: nothing has
# landed yet.
[workspace]
resolver = "3"
members = [
"apps/nescapture",
"apps/nescope",
"apps/nesdoctor",
"apps/nesgamepad",
"apps/neshub",
"apps/nesinit",
"apps/neswire",
"crates/nesprotocol",
]
# One pin per dependency, here. A member never writes a version — that is what
# stops two crates in one tree from disagreeing about tokio.
[workspace.dependencies]
anyhow = "1"
clap = { version = "4", features = ["derive", "env"] }
libc = "0.2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
tokio = { version = "1", features = ["full"] }
tokio-vsock = "0.7"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Cargo only reads `[profile.*]` from the workspace root, and warns about a
# member that writes one. `apps/nescapture` had exactly this block and was
# getting none of it: `cargo build --release --workspace` — which is what
# build/Dockerfile runs — silently ignored it, so the Vulkan capture layer
# shipped at the default release profile.
#
# `opt-level = 3` is already the release default; `lto = "thin"` is the part
# that was actually being lost. It applies to the whole workspace now, which is
# the same rule as `[workspace.dependencies]` above: settings that must not
# differ between members live in one place.
[profile.release]
lto = "thin"
[workspace.package]
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/nestrilabs/nestri"