Skip to content

Idiomatic Rust API for littlefs

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

trussed-dev/littlefs2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.2.1

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.