Giter Site home page Giter Site logo

scarab's Introduction

Scarab

A system to patch your content files.

Basically, Scarab is a C++ library to build and apply binary diff package for directories. Scarab is built to be embeddable into your application or service.

Download Win32 binaries on sourceforge.net.

Scarab can be used under GNU General Public License (GPL), version 2. http://www.gnu.org/licenses/old-licenses/gpl-2.0.html Commercial licensing for proprietary products is also available.

Copyright (c) 2013 Alexey Baskakov.

Copyright (c) 2013 Kirill Yudintsev.

Feel free to contact authors for additional features, consulting and support.

scarab's People

Contributors

loyso avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

scarab's Issues

[bug] empty folders are not removed

If in OLD folder were some empty folders, which are not present in the NEW folder, Scarab won't remove them after patching, thereby leaving empty junk folders all around, which besides cluttering, can sometimes cause problems as well (as some games or programs check whether there is a folder and do something based on this).

Could Scarab be released under LGPL?

Hello,

Scarab works very well, out of the box. I would prove useful for smaller companies for delivering updates / patches. But GPL could restrict its usage.

Could Scarab be released under LGPL?

Generate a win32 .exe for automatic patching

  1. Make builder generate a .exe with gui that will ask for the ORI directory to be patched, incorporating the data in the executable, with integrity check,
  2. Include a .nfo, image .png and .ico for the gui with a link to your site for donation :)
  3. generate a dot(.)backup directory with a copy of the old files before patching (a revert back function :),
  4. check if files are missing/wrong version before patching (and sha2?)
  5. show a progressbar with time approximation.
  6. It should be possible to extract the data from the .exe so it can be used on an incompatible system (ie linux/mac)

Do you think it could be possible without too mutch work ?
Thanks

Zlib error

Hi, When I use your source code to build exe file but zlib is error (builder and patcher). Althought I used new zlib library.

Scarab not returning error codes.

Hello, I;m using scarab on my build tool, it doesn't return error codes when the task fails. It makes the process of automation difficult.

Could scarab achieve this?

[request] 7-ZIP support.

As 7-ZIP is a successor of ZIP, is newer and gives more compression ratio, thereby ZIP is obsolete, thus 7-ZIP support should be added instead of ZIP (or additionally).

Builder Error

Hi,
I have a problem is when I build diff file for 2 folder (source and destination), while executing EncodeDiffFile function have error (error code is 28), (it mean left space memory). This problem appear with some file.

[bug] errors: Encoding error: Can't encode memory with xdelta. Error code: ♀ / Bad allocation / FAILED.

Something is wrong when trying to diff some pair of folders, it throws errors:

Encoding error: Can't encode memory with xdelta. Error code: ♀
Bad allocation.

or

Encoding error: Can't encode memory with xdelta. Error code: ♀
Encoding xdelta diff file game1/file1.dll.diff
Gathering SHA1 digests for files in old directory...
Creating registry file...
FAILED.

What's going on?

Perhaps the errors are more related to Xdelta than to Scarab? - since there are some big sized files (over 500mb) in both folders, which Xdelta has some troubles with? Perhaps updating Scarab with the newest version of Xdelta can fix the errors?

http://xdelta.org/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.