Un système de fichiers indépendant, développé en Rust et C.
Conçu pour posséder son propre format disque et viser Windows, Linux et, à terme, ArchiaOS.
OpenFS est un système de fichiers indépendant. Il définit sa propre organisation des données sur disque : métadonnées, dossiers, fichiers, blocs, allocations et journal. Il ne lit pas et n'écrit pas les volumes NTFS ou ReFS.
Statut : expérimental. Le moteur Rust et les outils d'image permettent déjà de créer et manipuler des volumes de développement. Sous Windows, le montage d'image passe par Dokany. Le pilote WDM natif en C est en cours de développement et ne monte pas encore de volume utilisable. Le montage Linux n'est pas implémenté. N'utilise pas OpenFS pour des données importantes.
- Un workspace Rust organisé en bibliothèques indépendantes.
- Un format disque versionné avec superblocs, métadonnées, entrées de répertoire, extents et bitmap d'allocation.
- Un namespace persistant et des opérations sur les fichiers : création, lecture, écriture, import/export, renommage, suppression et troncature.
- Un journal et des mécanismes de récupération pour les opérations prises en charge.
- Des outils pour créer, inspecter, vérifier et auditer des images.
- Une intégration Windows expérimentale avec Dokany.
- Des validateurs et codecs C pour préparer le pilote WDM natif.
- Le pilote Windows natif ne monte pas encore de volume et ne traite pas les opérations de fichiers.
- Aucun adaptateur de montage Linux n'est disponible.
- Les garanties de récupération ne couvrent pas encore toutes les mutations et toutes les pannes possibles.
- Les tests sur matériel USB sont en pause.
- OpenFS n'est pas prêt pour la production et n'est pas compatible NTFS/ReFS.
Prérequis : Git et Rust stable.
Depuis la racine du dépôt :
cd OpenFS
cargo build --workspacePour vérifier le code :
cargo fmt --all -- --check
cargo test --workspace --all-features
cargo clippy --workspace --all-targets --all-features -- -D warningsConsulte les exécutions CI pour connaître le résultat réel de la dernière branche.
La méthode recommandée est de travailler sur une image :
cargo run -p openfs-tool -- create-image ./test-openfs.img 128
cargo run -p openfs-tool -- mkdir ./test-openfs.img 4096 /docs
cargo run -p openfs-tool -- touch ./test-openfs.img 4096 /docs/hello.txt
cargo run -p openfs-tool -- write ./test-openfs.img 4096 /docs/hello.txt "Bonjour OpenFS"
cargo run -p openfs-tool -- cat ./test-openfs.img 4096 /docs/hello.txt
cargo run -p openfs-tool -- tree ./test-openfs.img 4096 /
cargo run -p openfs-tool -- check-image ./test-openfs.img 4096La création initialise le volume et son dossier racine. Les images sont idéales pour les essais : elles évitent de modifier un disque réel.
.
├── README.md
├── docs/ Documentation et ressources du projet
│ └── assets/
│ └── openfs-logo.png
├── .github/workflows/ Intégration continue
└── OpenFS/ Workspace Rust
├── crates/
│ ├── openfs-core/
│ ├── openfs-block/
│ ├── openfs-format/
│ ├── openfs-partition/
│ └── openfs-tool/
└── windows-driver/ Pilote Windows natif en C
- Prise en main
- Architecture
- Format disque
- Pilote Windows
- Sécurité et limites
- Feuille de route
- Index de la documentation
Les crates déclarent actuellement MIT OR Apache-2.0. Consulte les fichiers de licence et les manifests avant toute redistribution.
