All notable changes to the crates in this workspace will be documented in this file.
The format is based on Keep a Changelog.
flipperzero::dialogs::DialogFileBrowserOptions
flipperzero::furi::kernel
module exposing mostfuri_kernel_*
APIsas_ticks()
method toflipperzero::furi::time::Duration
flipperzero::furi::thread::sleep_ticks
function to sleep for exact durationTryFrom<core::time::Duration>
forflipperzero::furi::time::Duration
sys::furi::Error
as error type for Kernel operations.
- Updated to SDK 78 (firmware 1.1.2)
flipperzero::dialogs::DialogFileBrowserOptions
now uses native initialization function.flipperzero::time::Duration::MAX
is now the maximum duration representable.sys::furi::Status::err_or_else
has been replaced bysys::furi::Status::into_result
.
flipperzero::furi::duration_to_ticks
in favour ofTryFrom
traits
flipperzero::gpio::i2c
, providing a Rust interface to the external 3.3V I2C bus over GPIO pins C0 and C1, as well as the internal (power) I2C bus.flipperzero::furi::string::FuriString::into_raw
, allowing ownership of the string to be able to be handed over to C code.
- Updated to SDK 73 (firmware 1.0.1🥳).
- Switched to
nightly-2024-09-10
compiler flipperzero_rt::entry
macro now requires a function with type signaturefn(Option<&CStr>) -> i32
instead offn(*mut u8) -> i32
.flipperzero::furi::string::FuriString::as_mut_ptr
is now public to allow for it to be used with low-level C APIs (e.g.furi_string_printf
).
flipperzero::toolbox::{Md5, Sha256}
(due to their removal from the Flipper Zero SDK API).flipperzero_sys::c_string!
, sinceCStr
literals are stable now and the macro did not provide any validations.
flipperzero::furi::time::{Duration, Instant}
implementations.impl Default for flipperzero::dialogs::DialogMessage
impl Default for flipperzero::toolbox::Crc32
- Migrated to SDK API 35.0 (firmware 0.89.0).
flipperzero_test::tests
now allows#[cfg(..)]
attributes on test methods.
- Feature flags are now documented and the items guarded by them are now annotated.
flipperzero::format
macro.flipperzero::furi::sync::FuriMutex
flipperzero::furi::time
, containing the currently unusable placeholder typesDuration
andInstant
.
- Migrated to SDK API 28.2 (firmware 0.84.1).
flipperzero::furi::sync
has been rewritten using thelock_api
crate.Mutex<T>
is now a type alias forlock_api::Mutex<FuriMutex, T>
.MutexGuard<'a, T>
is now a type alias forlock_api::MutexGuard<'a, FuriMutex, T>
.
flipperzero::{print, println}
macros now panic if they cannot write to stdout.
flipperzero::{log, error, warn, info, debug, trace}
logging macros.flipperzero::furi::log
, providing theLevel
andLevelFilter
types for use with the logging macros.flipperzero::furi::rng
, providing theHwRng
type compatible with therand
crate.flipperzero::furi::string
, providing theFuriString
type that implements aCString
-like string with aString
-like API.- In
flipperzero::furi::thread
:Builder, Thread, ThreadId, JoinHandle
spawn, current, yield_now
- In
flipperzero::io
:Error::description
impl ufmt::uDisplay for Error
flipperzero::notification
, providing constants for standard notification sequences, and APIs for running them.flipperzero::toolbox
, providing wrapper types around several tools from the Flipper Zero SDK.flipperzero-test
crate, providing a test harness for running tests directly on a Flipper Zero.
- Migrated to SDK API 23.0 (firmware 0.82.3).
- MSRV is now 1.70.
- Bumped pinned nightly Rust version to
nightly-2023-05-03
. flipperzero_rt::entry!
now waits for threads with the same app ID to finish. This prevents crashes when aJoinHandle
is dropped instead of joined, and would outlive the main function.
flipperzero::io
, providingRead, Write, Seek
traits similar to the ones instd::io
.flipperzero::storage
, providingOpenOptions
andFile
structs similar to the ones instd::fs
.impl ufmt::{uDebug, uDisplay} for flipperzero_sys::furi::Status
- Migrated to SDK API 20.0 (firmware 0.80.1).
- MSRV is now 1.64.
- Bumped pinned nightly Rust version to
nightly-2023-03-10
. flipperzero::{print, println}
macros now use theufmt
crate, and are restricted to its supported argument syntax.
- Removed unintended prefix from all bindings documentation.
flipperzero::dolphin
, providing types for interacting with the dolphin.
flipperzero_sys
bindings documentation is now transformed from Doxygen.
- Migrated to SDK API 14.0 (firmware 0.77.1).
flipperzero/alloc
feature flag.flipperzero::dialogs
, providing theDialogsApp
andDialogMessage
types for creating simple dialogs.flipperzero::gui::canvas:Align
enum, used byDialogMessage
.flipperzero_sys::furi::UnsafeRecord
- Inline functions required to use the Furi HAL GPIO interface.
- Migrated to SDK API 11.2 (firmware 0.74.2).
- Macros now allow trailing commas.
- Migrated to SDK API 10.1 (firmware 0.73.1).
- Custom icon support to
flipperzero_rt::manifest!
macro.
- Migrated to SDK API 7.5 (firmware 0.71.1).
flipperzero_rt::manifest::ManifestBase
fieldsapi_version_major
andapi_version_minor
have been combined into anapi_version
field.
flipperzero-sys
bindings now use short enums as required.
flipperzero-rt
crate, enabling standalone app binaries to be built.
- Hand-written bindings are replaced by generated bindings from SDK API 2.2 (firmware 0.69).
flipperzero::panic_handler
(moved toflipperzero_rt::panic_handler
).
flipperzero::{print, println}
macros.flipperzero::furi::{message_queue, sync}
modules.flipperzero::furi::{Result, Error}
type aliases.flipperzero-alloc
crate, providing global allocator support.flipperzero-sys
crate has more hand-written bindings.
- MSRV is now 1.64.
flipperzero::furi::Stdout
moved intoflipperzero::furi::io
module.flipperzero::furi::sleep
moved intoflipperzero::furi::thread
module.
Initial release!