Crates.io | ledger_device_sdk |
lib.rs | ledger_device_sdk |
version | 1.18.4 |
source | src |
created_at | 2023-11-14 16:21:00.18152 |
updated_at | 2024-11-07 07:30:45.38432 |
description | Ledger device Rust SDK |
homepage | |
repository | https://github.com/LedgerHQ/ledger-device-rust-sdk |
max_upload_size | |
id | 1035021 |
size | 331,691 |
Crate that allows developing Ledger device apps in Rust with a default configuration.
Contains:
ui
module for Nano (S/SP/X) apps, nbgl
module for Stax and Flex apps)To learn more about using the SDK and what is required to publish an app on the Ledger Live app store, please don't hesitate to check the following resources :
Nano S | Nano X | Nano S Plus | Stax | Flex |
---|---|---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Building requires adding rust-src
to your Rust installation, and both Clang and arm-none-eabi-gcc.
On Ubuntu, gcc-multilib
might also be required.
Using rustc nightly builds is mandatory as some unstable features are required.
rustup default nightly
rustup component add rust-src
If you wish to install the ARM gcc toolchain using your distribution's packages, these commands should work:
# On Debian and Ubuntu
sudo apt install clang gcc-arm-none-eabi gcc-multilib
# On Fedora or Red Hat Entreprise Linux
sudo dnf install clang arm-none-eabi-gcc arm-none-eabi-newlib
# On ArchLinux
sudo pacman -S clang arm-none-eabi-gcc arm-none-eabi-newlib
This SDK provides custom target files. One for each supported device.
cargo build --release -Z build-std=core --target=./nanos.json
cargo build --release -Z build-std=core --target=./nanox.json
cargo build --release -Z build-std=core --target=./nanosplus.json
cargo build --release -Z build-std=core --target=./stax.json
cargo build --release -Z build-std=core --target=./flex.json
Building before rustc 1.54 should fail with error[E0635]: unknown feature const_fn_trait_bound
.
This is solved by activating a specific feature: cargo build --features pre1_54
You can submit an issue or even a pull request if you wish to contribute, we will check what we can do.
Make sure you've followed the installation steps above. In order for your PR to be accepted, it will have to pass the CI, which performs the following checks:
clippy
does not emit any warningsrustfmt
's format (using cargo fmt
)