wavefnd / wavefnd/Wave

Add missing filesystem mutation primitives to std::sys

Open
#382 0 comments 0 reactions 0 assignees View on GitHub
cross-platform enhancement help wanted needs testing
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

Tracked by #375 and represented in #378.

## Scope

Extend target-specific filesystem providers and the common std::sys::fs facade with coherent contracts for:

- rename.
- chmod and fchmod.
- truncate and ftruncate.
- link and symlink.
- readlink.
- directory creation and removal parity where names differ by platform.

Keep these as raw operating-system primitives. User-facing naming and ownership decisions belong to #380.

## Completion criteria

- [ ] Linux and macOS providers expose matching portable operations where semantics align.
- [ ] Constants, integer widths, pointer types, and return conventions are source-auditable.
- [ ] Hosted tests cover success and representative failure paths.
- [ ] RV64 Linux integration follows the architecture split in #370.
- [ ] Platform-specific behavior is documented instead of silently normalized.

Contributor guide

Open the contributing guide

Research direction

Start at the common std::sys::fs facade and the target-specific filesystem providers, then read the contracts tracked by #375 and represented in #378. Check the hosted tests for success and representative failure paths, and review the architecture split in #370 for RV64 Linux. Done means matching Linux and macOS primitives, auditable types and return conventions, documented platform-specific behavior, and passing integration coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.