Skip to content

alpico/storage.pico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The alpico Storage Stack

A modular and portable approach to persisting data

storage.pico logo

The modular approach

alpico is developing an ecosystem for embedded software development. We believe that by using a modular approach, software can be made a lot smaller and a lot less complex offering many benefits to embedded devices - both in performance and ease of development.

To facilitate modularity and ensure the smallest possible footprint in every use case, we divide functionality strongly between crates. Crates, in turn, use feature flags, so you only ever use what you need.

Read-only and read-write versions of filesystems will commonly be split into two crates because write functionality often requires to save additional information in structs compared to read-only. Generating (mkfs) and checking (fsck) are not required at all for normal interaction with a filesystem and are therefore separate crates as well. Finally, there will be end-to-end integration tests in their own crates.

Portability

All crates in this repo, except for the examples in ap-storage-examples, are #![no_std] compatible.

Supported Filesystems

Utilities

Examples

We have examples of the implementation of tools using our storage interface.

Roadmap

  • pseudo disks
    • /dev/zero - read returns nul-bytes, writes are ok
    • concat aka RAID0
  • unified FS - Use a single struct for interacting with any supported filesystem
    • introduce derive macro to specialize the implementation
  • partition support
    • follow extended/logical partitions
  • external memory cache
    • support multiple ways

Releases

No releases published

Packages

No packages published

Languages