selfe-arc

A simple file archive library, useful for bundling process binaries and configuration files with your seL4 application. It takes special care to page align all file data.

Usage

The pack module can be used to create archives on a typical computer. This will be done automatically when building with selfe. The read module can be used to read archive data (which you embedded in your root task, and so is mapped into memory).

Library Contents

layout module

The layout module contains the basic data structures and code that define the serialization format. You typically won't use it directly.

pack module

The pack module can be used to create archives from files on the filesystem.

```rust use selfe_arc::pack;

let mut ar = pack::Archive::new(); ar.add_file("test.txt", Path::new("./test.txt"));

let mut archivedata = Vec::new(); let mut writer = io::BufWriter::new(&mut archivedata); ar.write(&mut writer).unwrap(); ```

read module

The read module, available with nostd, Allos you to read the data from somewhere in memory. It deals with &[u8] slices, which you should be able to create from a pointer and a length.

```rust use selfe_arc::read;

let arcdata = unsafe { core::slice::fromrawparts(selfearcdataptr, _selfearclen) }; let ar = read::Archive::fromslice(&arc_data);

let test_txt: &[u8] = ar.file("test.txt").unwrap(); ```