-
PythonでFUSEファイルシステムを書くガイドを開始
- DebConf22でEeveelweezelと話した後、Chicago Python User Groupで発表の準備をするよう招待を受けた。
- Pythonはそれほど頻繁には使わないが、学生たちが理解しやすい言語として教えている。
- FIUnamFSというシンプルなファイルシステムを授業プロジェクトとして使っており、学生にはFUSEを使って透過的なインターフェースを提供するよう勧めている。
-
FUSEファイルシステム実装の難しさ
- PythonでFUSEベースのファイルシステムを構築するのは簡単ではない。
- さまざまなサンプルやWebページはあるが、その大半は古く、追いかけるのが難しい。
- Pythonにはpython-fuse、Pyfuse、Fusepyなど、さまざまなインターフェースが存在する。
-
GitLabプロジェクトの開始
- PythonでFUSEベースのファイルシステムを書くためのガイドを提供するため、GitLabプロジェクトを登録した。
- RAMベースおよびパススルーベースのファイルシステム実装を含め、複数の作業を段階的に追加した。
- 学生たちが楽しく実用的な例を通じて学べるよう、DNSファイルシステム、リアルタイムMarkdownコンパイルファイルシステム、展開ファイルシステム、コメント除去ファイルシステムなどのアイデアも追加した。
-
発表と教育計画
- ChiPyで発表予定であり、Santa Fe, Argentinaで開催されるJornadas Regionales de Software Libreや、Mexico Cityで開催されるnerdear.laでも発表する予定である。
- 学生たちにこのプロジェクトを共有し、PythonでのFUSE実装に関心を持つよう促す計画である。
-
GN⁺のまとめ
- この記事は、PythonでFUSEファイルシステムを実装したい人にとって有用な情報を提供している。
- さまざまな例と段階的なガイドを通じて、学生たちが無理なく学べるよう支援している。
- FUSE実装の難しさを解決しようとする努力が際立っており、Pythonコミュニティに貢献しようとする意図が前向きに評価できる。
- 類似の機能を持つプロジェクトとしては、DokanとWinFspがある。
1件のコメント
Hacker Newsのコメント
libfuse の GitHub には、C/C++ の複雑さを増してしまう良い例がある
passthrough.cは既存のファイルシステムをミラーするが、性能はあまり良くないpassthrough_fh.cは性能が少し良いpassthrough_ll.cは低レベル API で実装されており、3つの中では最も良いpassthrough_hp.ccは C++ で書かれた高性能版FUSE 以外にも、9p プロトコルを通じて仮想ファイルシステムを実装できる
py9pを使った Python の体験はfuse-pythonより良かったdiod 9pサーバーを使っていたFUSE を使って Jira をファイルシステムに変換するプロジェクトを始めた
issue-type-with-summaryディレクトリタイプを追加して問題を解決したFUSE に関心がある人は、CUSE プロジェクトにも関心を持つかもしれない
さまざまな FUSE のマウントオプションが存在し、JuiceFS はオブジェクトストレージを POSIX ファイルシステムとしてマウントする点で興味深い
最近は NFS ベースのファイルシステムを実装する人が増えている
rcloneがこれをサポートしているazuline/roséは仮想ファイルシステムを持つ音楽マネージャーで、学習に適したコードベースを提供しているFUSE を使って、Makefile が任意のリソースに対して DAG を指定できるようにした
Python の FUSE ファイルシステムを作って dokuwiki とやり取りした
easyfuseというラッパーを作り、dokuwiki に無関係な低レベル API を実装したFUSE を使って git リポジトリを公開する小さなプロジェクトを書いた
.gitフォルダを通じて、すべてのコミットとブランチをそれぞれ独自のフォルダとして公開する