In-Memory Filesystems in Rust
Разрабатывая CLI-утилиту, я хотел избежать тормозов при тестах из-за fstat
, как это было в Bundler. Решил попробовать in-memory FS, как в Go-библиотеке Afero.
В Rust аналогов нет: спросишь — получишь лекцию «в Rust это не нужно». Нашёл два кандидата:
- vfs — поддерживает swap-бэкендов, но без симлинков и прав, а главное — нельзя создавать исполняемые файлы.
- rsfs — старый, почти заброшенный; требует параметризовать весь код типом
rsfs::FS
, превращая сигнатуры в кашу.
Провёл бенчмарк: vfs
, rsfs
, ramdisk и обычный SSD — всё показывает ~45 мс. Современные SSD + кеш ОС настолько быстры, что экономия на syscalls незаметна.
Вывод: тестируй прямо на файловой системе — проще и не медленнее.