Доработать библиотеку Ruby Marshal для парсинга .rxdata/.rvdata файлов

5 000 руб. за проект
22 июля 2021, 22:08 • 1 отклик • 15 просмотров
необходимо доработать библиотеку (сделать форк, архив или отдельный пакет) ruby marshal https://github.com/d9pouces/RubyMarshal
чтобы получить возможность маршалить/демаршалить .rxdata, rvdata и rvdata2 файлы.

Примеры файлов https://disk.yandex.by/d/Gsm8lxGzw7ngFw.

критерии успеха:
- файлы полностью размаршаливается (два начальный байта (4 и 8) как маркер начала, могут встречаться в файле 1 и более раз, библиотека умеет читать только первый кусок, необходимо читать весь файл)
- обновленный код полностью поддерживает все типы (userder достаточно в текущем виде, главное обратить внимание на default hash, ivar, etc)
- считанное содержимое, а затем записанное должно быть идентично оригинальному файлу

пример кода
```
from rubymarshal.reader import load
from rubymarshal.writer import write

def main(filename):
data = open(filename, "rb")
assert data == write(load(open(filename, "rb"))

```