Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rust Boilerplate tutorial #133

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 25 additions & 12 deletions pages/docs/device-app/develop/tutorials/rust.mdx
Original file line number Diff line number Diff line change
@@ -1,20 +1,33 @@
import { Callout} from 'nextra/components'

# The `Rust` 🦀 boilerplate application

# The `Rust` boilerplate application
The `Rust` Boilerplate application is taylored to showcase both the capabilities of the Ledger Device `Rust` [SDK](https://github.com/LedgerHQ/ledger-device-rust-sdk/tree/master)
(also published on [crates.io](https://crates.io/crates/ledger_device_sdk)) and our development environment ([Docker containers](https://github.com/LedgerHQ/ledger-app-builder),
[device emulator](https://github.com/LedgerHQ/speculos), [test framework](https://github.com/LedgerHQ/ragger)).

<Callout type="warning">
This section is still a Work In Progress, as the `Rust` SDK is not yet stable and fully integrated in our
production environment.
</Callout>

The `Rust` Boilerplate application is taylored to showcase both the capabilities of the Ledger Secure `Rust` SDK and our
development environment and tools.

By cloning this application, you should find extensive examples on how to managed APDU communication, declare UI flows,
use cryptographic APIs, but also how to integrate into our build and test environment, and how to deploy your
application.
By cloning this application, you should find extensive examples on how to manage APDU communication, declare UI flows,
use cryptographic APIs, but also how to integrate into our build and test environment.

With very little changes, you should be able to quickly have an application of your own.

[Click here](https://github.com/LedgerHQ/app-boilerplate-rust) to fork the repository and start your project.

## Continuous Integration (CI)

In the Rust boilerplate application repository you will find [a list of workflows](https://github.com/LedgerHQ/app-boilerplate-rust/tree/main/.github/workflows)
to set up an efficient CI pipeline for your project.

Two of them are <u>mandatory</u> to submit your device application for review:
- [Coding Style Check](https://github.com/LedgerHQ/app-boilerplate-rust/blob/main/.github/workflows/coding_style_checks.yml):
this workflow runs linting checks to ensure a proper level of code quality among all Ledger applications,
- [Guidelines_enforcer](https://github.com/LedgerHQ/app-boilerplate/blob/master/.github/workflows/guidelines_enforcer.yml):
this workflow calls a reusable workflow developed by Ledger's internal developer team.

The [Build and Run functional tests](https://github.com/LedgerHQ/app-boilerplate-rust/blob/main/.github/workflows/build_and_functional_tests.yml) workflow
is highly recommended: it builds the app and then runs functional tests using the [Ragger](https://github.com/LedgerHQ/ragger) framework upon [Speculos](https://github.com/LedgerHQ/speculos)
emulation.
<Callout type="warning">
Having functional testing on your application is mandatory and this workflow and tooling environment is meant to be easy to use and
adapt after forking the boilerplate application
</Callout>
Loading