flipperzero-test 0.13.0

Rust test harness for Flipper Zero
# Rust for Flipper Zero 🐬❤️🦀

[![crates.io](https://img.shields.io/crates/v/flipperzero)](https://crates.io/crates/flipperzero)
[![Flipper Zero API](https://img.shields.io/badge/Flipper%20Zero%20API-78.0-orange)](https://github.com/flipperdevices/flipperzero-firmware/blob/1.1.2/targets/f7/api_symbols.csv)
[![docs.rs](https://img.shields.io/docsrs/flipperzero)](https://docs.rs/flipperzero)
[![MIT license](https://img.shields.io/crates/l/flipperzero)](LICENSE)

This project allows writing Rust-based applications for the [Flipper Zero](https://flipperzero.one/).

It doesn't have any direct dependency on [`flipperzero-firmware`](https://github.com/flipperdevices/flipperzero-firmware) or toolchain,
so it can be used to build binaries with no external dependencies.

These crates only support the [`core`](https://doc.rust-lang.org/core/) and [`alloc`](https://doc.rust-lang.org/alloc/) crates.

The Rust `thumbv7em-none-eabihf` target currently only supports [`no_std`](https://rust-embedded.github.io/book/intro/no-std.html) development.
This means it's not possible to use anything in the [`std`](https://doc.rust-lang.org/std/) crate.

## SDK version

Currently supports SDK 78.0 ([flipperzero-firmware@1.1.2](https://github.com/flipperdevices/flipperzero-firmware/tree/1.1.2)).

The crate major version number will be updated after a bump in [API version](https://github.com/flipperdevices/flipperzero-firmware/blob/release/targets/f7/api_symbols.csv) in the Flipper Zero firmware.

| Crate version | API version |
| ------------- | ----------- |
| 0.13.x        | 78.0        |
| 0.12.x        | 73.0        |
| 0.11.x        | 35.0        |
| 0.10.x        | 28.2        |
| 0.9.x         | 23.0        |
| 0.8.x         | 20.0        |
| 0.7.x         | 14.0        |
| 0.6.x         | 11.2        |
| 0.5.x         | 10.1        |
| 0.4.x         | 7.5         |
| 0.3.x         | 2.2         |

## Crates

- [`flipperzero`]https://crates.io/crates/flipperzero: High-level safe bindings
- [`flipperzero-alloc`]https://crates.io/crates/flipperzero-alloc: Custom [global allocator]https://doc.rust-lang.org/std/alloc/trait.GlobalAlloc.html (required for [`alloc`]https://doc.rust-lang.org/alloc/)
- [`flipperzero-rt`]https://crates.io/crates/flipperzero-rt: Runtime support (including [panic handler]https://docs.rs/flipperzero-rt/latest/flipperzero_rt/panic_handler/ and [entry point]https://docs.rs/flipperzero-rt/latest/flipperzero_rt/macro.entry.html helper)
- [`flipperzero-sys`]https://crates.io/crates/flipperzero-sys: Low-level bindings to Flipper Zero API (unsafe)

## Initial setup

1. Install [`rustup`]https://rust-lang.github.io/rustup/ by following the instructions on [`rustup.rs`]https://rustup.rs/.
2. Use `rustup` to install the `thumbv7em-none-eabihf` target:
   ```
   rustup target add thumbv7em-none-eabihf
   ```

## Writing an application

The Flipper Zero supports installing [externally built applications on the SD card](https://github.com/flipperdevices/flipperzero-firmware/blob/dev/documentation/AppsOnSDCard.md).

See [`flipperzero-template`](https://github.com/flipperzero-rs/flipperzero-template)🚀 to help you get started.

## License

Licensed under the MIT License. See LICENSE for details.