I need libraries to do both these things for all 3 languages.
Objective-C will be way easier than the other 2, simply because it will only take a small bit of hacking to get it to work. For that, I need it modified to be used as a library.
Full par2 & unrar support via library with event-handlers are expected. Read advanced for more information.
I need full par2 support, including but not limited to:
- verification of par2 sets
- knowing if any par2 files are corrupt
- full repair of files (any size)
- efficient, multi-threaded or single threaded design
- low memory footprint
For Unrar, I would like an API that would support the latest version, full extraction, CRC checking, full support for encryption/passwords.
As I am aware that Unrar is GNU, it is not a problem that it would include said agreements, but I would not like it released to the public (should that be legal)
Unrar events required to be fired:
- CRC error (including what file was corrupt, as well as affected rar(s)..)
- Extraction complete every 1% (total), up to 100%
- Extraction complete every 1% (of every file), up to 100%
- Missing additional rars (when available)
- Anything else that would prove to be useful when you are building it
PAR2 verification events required to be fired:
- File verification complete every 1% (of total) up to 100%, including how many blocks available (of) how many blocks it should be (for all files, in a List/collection/other..)
- File verification complete every 1% (of every file) up to 100%, including how many blocks available (of) how many blocks it should be
Par2 repair events required to be fired:
- Estimated time once known
- Similar design to above, not sure how it works with par2, but for example, I would want to know that it has collected 500 of 550 blocks for repair, with 50 blocks remaining (Must be notified of what events and they must be done.. This is a very important requirement)
In summary though, I need everything so that I can inform a user in a user interface of progress, in every detail imaginable. I'll have to decide later what I want to use, but I want all events.
I would additionally like configurable buffers for all I/O (for example, I can decide for par2 to use 1MB buffers, or 1GB buffers, and it will use less memory but write to disk way more)
Nothing should be in memory more than the buffer, and as such, it is important that the memory usage will be low.
Multithreading should also be built-in.
These should be available as DLLs, but full source code (non-obfusticated) will be required, as well as good code quality is expected.
Code style requirements:
- classes CamelCase
- functions CamelCase
- class variables _camelCase or camelCase
- local variable (inside function) camelCase