Основатель QEMU и FFmpeg развивает систему синхронизации файлов VFsync
Французский математик Фабрис Беллар (Fabrice Bellard), основавший в свое время проекты QEMU и FFmpeg, а также создавший самую быструю формулу вычисления числа Пи и разработавший формат изображений BPG, опубликовал новый проект VFsync и связанный с ним эмулятор RISCVEMU. Система предусматривает три варианта использования: запуск утилиты в режиме командной строки, выполнение в web-браузере виртуальной машины с синхронизированным окружением операционной системы и запуск виртуальной машины на локальной системе при помощи эмулятора. Наработки проекта распространяются под лицензий MIT.
Одной из целей VFsync является предоставление наивысшего уровня безопасности, для чего и предлагается запуск виртуальных машин. Подразумевается, что окружение из виртуальной машины полностью независимо от текущей системы и может быть синхронизировано из внешнего хранилища для получения доступа к своим данным и рабочему окружению независимо от того, на какому компьютеру удалось получить доступ. Перед записью на сервер информация шифруется на стороне клиента с использованием алгоритма AES (ключ для шифрования создается при помощи PBKDF2 HMAC SHA-256), обмен данными осуществляется по HTTPS. Для данных может быть использовано как предлагаемое проектом облачное хранилище, так и компоненты запущенные на своем оборудовании.
В случае запуска в браузере применяется реализация эмулятора JS/Linux, написанного на языке JavaScript, способного запустить Linux. После запуска в браузере выводится приглашение консоли, из которого можно подключить к облачному хранилищу ("vflogin username"), загрузить свои файлы в домашнюю директорию, произвести работу с файлами при помощи штатных unix-утилит (запускается busybox) и синхронизировать изменения.
Для запуска графической оболочки предлагается более производительное решение на базе эмулятора RISCVEMU, позволяющего создать виртуальную машину с 128-разрядной архитектурой RISC-V. В отличие от традиционных систем виртуализации RISCVEMU не требует отдельной загрузки дискового образа (загружается типовой образ, соответствующий конфигурации, заданной в формате JSON). Поддерживается SDL, VirtIO, сетевой интерфейс, IDE, PS/2, vmmouse и VGA.
Клиент для работы в командной строке по принципам взаимодействия напоминает системы управления версиями, а предоставляемые опции похожи на Subversion. Основное отличие состоит в том, что по умолчанию выполняется операция обновления локального содержимого до состояния на сервере (вместо коммита изменений на сервер), поддерживается только одна ветка HEAD и невозможен откат изменений, все метаданные и данные шифруются перед отправкой на сервер и хранится в зашифрованном виде. При удалении файла на локальной системе он также удаляется и на сервере без необходимости явного выполнения команды remove.
Например, для получения своих файлов можно использовать команду "vfsync -u user1 co https://vfsync.org/u/user1/home my_home", а для отправки изменений на сервер достаточно просто запустить vfsync. В случае возникновения конфликтов локальный файл будет переименован, а его место займет вариант с сервера.