12 unstable releases (5 breaking)

0.6.1 Mar 4, 2025
0.5.0 Oct 25, 2024
0.4.0 Feb 7, 2023
0.3.2 Sep 26, 2021
0.1.0-alpha.0 Dec 15, 2019

#112 in Embedded development

Download history 184/week @ 2024-12-04 225/week @ 2024-12-11 141/week @ 2024-12-18 17/week @ 2024-12-25 145/week @ 2025-01-01 189/week @ 2025-01-08 210/week @ 2025-01-15 319/week @ 2025-01-22 188/week @ 2025-01-29 286/week @ 2025-02-05 311/week @ 2025-02-12 308/week @ 2025-02-19 583/week @ 2025-02-26 554/week @ 2025-03-05 200/week @ 2025-03-12 337/week @ 2025-03-19

1,748 downloads per month
Used in 6 crates (4 directly)

Apache-2.0 OR MIT

160KB
3K SLoC

littlefs2

Idiomatic Rust API for littlefs

What is this?

Idiomatic Rust API for the littlefs microcontroller filesystem by Chris Haster.

Number 2 refers to the on-disk format version, supporting inline files, custom attributes and dynamic wear-leveling.

We follow std::fs as much as reasonable.

The low-level bindings are provided by the littlefs2-sys library.

The core types that are independent of a specific implementation version are provided by the littlefs2-core crate, see the core directory. These types are re-exported from the littlefs2 crate too.

Upstream release: v2.9.3

no_std

This library is no_std compatible, but there are two gotchas.

  • The dev-dependency memchr of littlefs2-sys has its std features activated. To prevent this, upgrade to at least Rust 1.51 and add resolver = "2" in the consuming code's [package] section. This will be the default in Rust 2021 edition.

  • At link time, lfs.c has a dependency on strcpy. When not linking to a libc with this symbol, activate the c-stubs feature to provide an implementation.

License

littlefs is licensed under BSD-3-Clause. This API for littlefs is licensed under either of Apache License, Version 2.0 or MIT License at your option. Previous bindings exist in the rust-littlefs repository, also dual-licensed under Apache-2.0 and MIT.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2.3–5.5MB
~111K SLoC