Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 2.32 KB

README.md

File metadata and controls

67 lines (48 loc) · 2.32 KB

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