Skip to main content

Crate jetstream_ufs

Crate jetstream_ufs 

Source
Expand description

A 9P file server over a local directory.

§Linux only

This crate reads directories with getdents64 through a LinuxDirent64 laid out over glibc’s LFS64 aliases — ino64_t and off64_t, which do not exist on macOS — and handles ownership through libc::uid_t/gid_t and std::os::unix, neither of which Windows has. That is a property of what it does, not an accident: serving 9P from a real filesystem means using the host’s directory-reading syscall.

So the constraint is declared here rather than worked around in CI. Off Linux this crate is empty: cargo build --workspace succeeds everywhere, and the crate is simply absent rather than failing to compile with four errors about missing libc types. The alternative — excluding it from the build in a workflow file — puts the constraint somewhere the next person to run cargo build --workspace on a Mac will not find it.

Making it portable is the other option, and a real one: it means replacing the getdents64 path with something BSD and macOS have. Worth doing when someone wants a 9P filesystem server on macOS.

Modules§

ufs

Macros§

syscall

Structs§

Config
Server

Type Aliases§

ServerGidMap
ServerIdMap
ServerUidMap