restructuring my_fs for the future #34

Open
opened 2026-04-05 15:25:17 +00:00 by delandtj · 1 comment
Owner

my_fs is a single monolithic crate containing everything — FUSE filesystem, HTTP flist hub server, CLI tools, storage backends, metadata layer, container
conversion, and scripting — all behind feature flags in one src/ directory.

Split into a Cargo workspace with clear layered crates:

  • myfs-core — foundation library: metadata (fungi/SQLite), store backends (S3, ZDB, HTTP, dir), cache, config, error types. No binary.

  • myfs-lib — operations library + myfs binary: FUSE mount, pack/unpack, clone, container conversion, rhai scripting.

  • myfs-hub — myfs-hub binary: flist hosting server (HTTP, auth, DB). Only depends on myfs-core.

  • myfstool — myfstool binary: CLI for clone, merge, sync, container ops, rhai script execution. Absorbs the standalone rhai_runner binary.

  • myfs-test-utils — shared test helpers (dev-dependency only).

    Dependency flow: myfs-core ← myfs-lib ← {myfs-hub, myfstool}

my_fs is a single monolithic crate containing everything — FUSE filesystem, HTTP flist hub server, CLI tools, storage backends, metadata layer, container conversion, and scripting — all behind feature flags in one src/ directory. Split into a Cargo workspace with clear layered crates: - [ ] myfs-core — foundation library: metadata (fungi/SQLite), store backends (S3, ZDB, HTTP, dir), cache, config, error types. No binary. - [ ] myfs-lib — operations library + myfs binary: FUSE mount, pack/unpack, clone, container conversion, rhai scripting. - [ ] myfs-hub — myfs-hub binary: flist hosting server (HTTP, auth, DB). Only depends on myfs-core. - [ ] myfstool — myfstool binary: CLI for clone, merge, sync, container ops, rhai script execution. Absorbs the standalone rhai_runner binary. - [ ] myfs-test-utils — shared test helpers (dev-dependency only). Dependency flow: myfs-core ← myfs-lib ← {myfs-hub, myfstool}
rawdaGastan added this to the ACTIVE project 2026-04-07 11:37:02 +00:00
Member

Classification: not-a-bug

This issue describes splitting the monolithic my_fs crate into a Cargo workspace. PR #33 (adr-workspace-restructuring) implemented exactly that proposal and was merged on 2026-04-07. The work described in the issue has been delivered. PR #35 is a separate follow-up for a broader microservice architecture that goes beyond the original scope and should be tracked as its own effort.

Classification: not-a-bug This issue describes splitting the monolithic my_fs crate into a Cargo workspace. PR #33 (adr-workspace-restructuring) implemented exactly that proposal and was merged on 2026-04-07. The work described in the issue has been delivered. PR #35 is a separate follow-up for a broader microservice architecture that goes beyond the original scope and should be tracked as its own effort.
Sign in to join this conversation.
No labels
No milestone
No project
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
geomind_code/my_fs#34
No description provided.