ARK-Builders / ARK-Builders/ark-core
Decouple `data` crates from `fs` crates
- Dominant language
- Rust
- Stars
- 10
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
Crates with `data` prefix should declare abstract data types and functions which could be used without persistence if necessary, for example for creating in-memory apps, or for shipping to platforms without access to filesystem (like WebAssembly for browser extensions).
Crates `data-link` and `data-pdf` depend on `fs-storage`. Ideally, we should define abstract storage type, so user/app could choose appropriate backend, e.g. `fs`, or `iroh` in the future.
Also, `fs-atomic-versions` shouldn't be used directly by `data-link` and other crates (although we leave this possibility to users/apps). Crate `fs-atomic-versions` should be used by `fs-storage`.
Basically, any dependency on `fs-atomic-versions` will require to create initialization methods.
Contributor guide
Research direction
Start by inspecting the dependency declarations and public APIs in `data-link`, `data-pdf`, `fs-storage`, and `fs-atomic-versions`. Trace how storage and initialization currently flow between these crates; the work is done when data crates can operate without filesystem persistence and `fs-atomic-versions` is used through `fs-storage` rather than directly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100