Современный порт: очень полезный .NET порт для bsdiff / bspatch:
https://github.com/LogosBible/bsdiff.net
Мой личный выбор.
Я протестировал его, и это была единственная из всех ссылок, которую я смог из коробки скомпилировать (с Visual Studio, например, 2013). (Исходный код C ++ в другом месте немного устарел и требует, по крайней мере, небольшой полировки и только 32-битный, который устанавливает ограничения реальной памяти (размер источника diff). Это порт этого кода C ++ bsdiff и даже тестирует, идентичны ли результаты патча к исходному коду).
Дальнейшая идея: с помощью .NET 4.5 вы даже можете избавиться от #Zip lib, который здесь зависит.
Я не измерял, немного ли он медленнее, чем код c ++, но он работал нормально для меня (файл bsdiff: 90 МБ за 1-2 минуты), и для меня критичным по времени является только bspatch, не bsdiff.
Я не совсем уверен, используется ли вся память машины x64, но я предполагаю это. Сборка с поддержкой x64 («Любой процессор») работает как минимум. Пробовал с файлом 100 МБ.
-
Кроме того: цитируемый проект Google 'Courgette' может быть лучшим выбором, если вашей основной целью являются исполняемые файлы. Но это работа по его сборке (по крайней мере, для мер Windows), а для двоичных файлов он также использует чистый bsdiff / bspatch, насколько я понял документ.