aligator
Mitglied
Mein neuestes Projekt:
Implementierung vom FAT32 / FAT16 Dateisystem in Go.
github.com
Warum?
Weil - Warum nicht?
Mich hat einfach interessiert wie FAT funktioniert.
Warum in Go?
Weil Go eine schöne Sprache ist, ohne viel Schnickschnack und ich aktuell eigentlich alle Bastelprojekte in Go schreibe.
Funktionsweise?
Grundsätzlich habe ich natürlich versucht die Spezifikation zu implementieren.
Als Basis verwende ich das Interface von afero, welches ich einfach implementiere. Das ist eine sehr praktische Dateisystem Abstraktion für Go.
Somit kann es mit allem genutzt werden, was afero verwendet und es werden natürlich die Utility Funktionen von afero unterstützt, wie zum Beispiel afero.Walk(...).
Aktueller Status?
Bis jetzt wird nur lesender Zugriff unterstützt, dieser aber für FAT32 und FAT16.
ToDo?
Implementierung vom FAT32 / FAT16 Dateisystem in Go.
GitHub - aligator/GoFAT: FAT filesystem implementation in pure Go compatible with afero.Fs and Go 1.16 fs.FS
FAT filesystem implementation in pure Go compatible with afero.Fs and Go 1.16 fs.FS - aligator/GoFAT
Warum?
Weil - Warum nicht?
Mich hat einfach interessiert wie FAT funktioniert.
Warum in Go?
Weil Go eine schöne Sprache ist, ohne viel Schnickschnack und ich aktuell eigentlich alle Bastelprojekte in Go schreibe.
Funktionsweise?
Grundsätzlich habe ich natürlich versucht die Spezifikation zu implementieren.
Als Basis verwende ich das Interface von afero, welches ich einfach implementiere. Das ist eine sehr praktische Dateisystem Abstraktion für Go.
Somit kann es mit allem genutzt werden, was afero verwendet und es werden natürlich die Utility Funktionen von afero unterstützt, wie zum Beispiel afero.Walk(...).
Aktueller Status?
Bis jetzt wird nur lesender Zugriff unterstützt, dieser aber für FAT32 und FAT16.
ToDo?
- Schreibender Zugriff.
- Theoretisch wäre dann auch eine Anbindung an Linux per Fuse möglich. Bindings dafür existieren: https://github.com/hanwen/go-fuse
- Auch wäre es eventuell interessant wenn diese Library mit TinyGo für Microcontroller funktionieren würde. Mein erster Test hierzu hat aber leider noch nicht funktioniert.
- Die Performance habe ich mir noch nicht angeschaut. Es gibt hier garantiert Verbesserungspotential.