Skip to content

Latest commit

 

History

History
145 lines (107 loc) · 5.96 KB

CHANGELOG.md

File metadata and controls

145 lines (107 loc) · 5.96 KB

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

v0.5.0 - 2024-10-25

This release contains many small changes to the public API. It also introduces the littlefs2-core crate that can be used for crates that want to access littlefs2 filesystems without depending on a specific implementation version.

Added

  • Added object-safe traits DynFile, DynFilesystem and DynStorage for accessing Storage, Filesystem and File implementations for any storage.
  • Added Filesystem::mount_or_else function (#57)
  • Marked Path::is_empty, Path::from_bytes_with_nul, Path::from_cstr, Path::from_cstr_unchecked, Path::as_str_ref_with_trailing_nul, Path::as_str, and PathBuf::new as const.
  • Made fs::FileOpenFlags public and added From<fs::FileOpenFlags> for fs::OpenOptions.
  • Support platforms where c_int is not i32.

Fixed

  • Fixed macro hygiene for path!.
  • Fixed build error that would occur on Windows systems.
  • Fixed compilation without default features.
  • Added path iteration utilities (#47)

Changed

  • Enforced const evaluation for path!.
  • Removed cstr_core and cty dependencies.
  • Updated littlefs2-sys dependency to 0.2.0.
  • Replace all panicking Path/PathBuf conversions with fallible alternatives:
    • Return a Result from Path::from_str_with_nul.
    • Replace the From<_> implementations for Path and PathBuf with TryFrom<_>, except for From<&Path> for PathBuf.
  • Refactor error types:
    • Change Error enum to a struct with associated constants.
    • Remove Error::Success and enforce negative values for Error.
  • Replace Path::exists with Filesystem::exists
  • Replace DynFilesystem::open_file_with_options_and_then{,unit} with DynFilesystem::open_file_with_flags_and_then{,unit} using FileOpenFlags instead of OpenOptionsCallback
  • Refactor attributes API:
    • Change the set_attribute function in DynFilesystem and Filesystem to accept an ID and a slice instead of an Attribute.
    • Add a buffer argument to the attribute function in DynFilesystem and Filesystem and return a slice of that buffer containing the read data.
    • Change the Attribute struct to store a slice with the read data and the total size of the attribute on the filesystem.
  • Introduce object_safe::Vec trait and change DynFile::read_to_end, DynFilesystem::read and DynFilesstem::read_chunk to be generic over a Vec implementation to support multiple heapless versions (disabled by default).

Removed

  • Removed Path::from_bytes_with_nul_unchecked. Use CStr::from_bytes_with_nul_unchecked and Path::from_cstr_unchecked instead.
  • Removed From<littlefs2::path::Error> for littlefs2::io::Error.
  • Removed object_safe::OpenOptionsCallback.
  • Removed consts::ATTRBYTES_MAX_TYPE.
  • Removed dir-entry-path feature (now always enabled).

[v0.4.0] - 2023-02-07

This release fixes an overflow of the lookahead buffer. Users are advised to upgrade from previous releases to avoid filesystem corruption.

Added

  • Added Path::from_str_with_nul and path! to create Path instances from str.
  • Added Eq and PartialEq implementations for Path.

Changed

  • Made Path::from_bytes_with_nul_unchecked const.
  • [breaking] Replaced LOOKAHEADWORDS_SIZE (measured in multiples of four bytes) with LOOKAHEAD_SIZE (measured in multiples of eight bytes) in driver::Storage so that all possible values are valid. (See the lookahead size fix below for context.)
  • [breaking] Require &mut self in driver::Storage::read for compatibility with embedded_storage.

Fixed

  • Fixed the lookahead size reported to littlefs2-sys. Previously, the reported size was too large by the factor of 8, potentially leading to a buffer overflow causing filesystem corruption. Fixing this means that Storage::LOOKAHEADWORD_SIZE values that are not a multiple of 2 can now lead to an error. Fixes #16.
  • Propagate errors in littlefs callbacks instead of panicking.

[v0.3.2] - 2021-09-16

Added

  • Added the c-stubs feature for improved no-std compatiblity.

[v0.3.1] - 2021-06-10

Changed

  • Removed the PATH_MAX_PLUS_ONE type from the driver::Storage trait.

[v0.3.0] - 2021-06-10

Yanked.

Changed

  • Removed the FILEBYTES_MAX, ATTRBYTES_MAX and FILENAME_MAX_PLUS_ONE types from the driver::Storage trait as they determined by the backend.
  • Updated to use resolver v2 to fix a dependency issue.

[v0.2.2] - 2021-03-20

Changed

  • Added remove_dir_all_when, allowing to filter "rm -rf "

[v0.2.1] - 2021-02-26

Changed

  • PathBuf::from errors on embedded nuls, and prevents ending with nuls
  • get rid of ufmt (oversight in 0.2 release)
  • get rid of dead code (oversight in 0.2 release)

[v0.2.0] - 2021-02-02

Changed

  • [breaking-change] The version of the generic-array dependency has been bumped to v0.14.2 (now that heapless v0.6.0` is out).

[v0.1.1] - 2021-02-11

Fixed

  • std-triggering regression