OpenRS Cache Library
Introduction
This is the cache library that myself and `Discardedx2 have been working on over the past few weeks. We've done some fairly extensive testing and seemed to have solved most of the issues. If you encounter one, before reporting it please ensure your cache isn't corrupt and is complete (the easiest way to do this if you are using the latest cache is to download the whole thing with Method's cache downloader).
This program is an official part of the OpenRS movement started by blakeman8192.
Features
Screenshot
Although this is a library intended for embedding in your own applications, the rules state we must include a screenshot. So this is a picture of an item's name being edited:
Credits
Also thanks to Sean for pointing out some bugs and defyboy for his research into the cache format.
Download
The code is licensed under the GNU GPLv3 license. The full terms are included in a file named LICENSE and can also be found on the GNU website.
MediaFire link: openrs-cachelib.zip
Introduction
This is the cache library that myself and `Discardedx2 have been working on over the past few weeks. We've done some fairly extensive testing and seemed to have solved most of the issues. If you encounter one, before reporting it please ensure your cache isn't corrupt and is complete (the easiest way to do this if you are using the latest cache is to download the whole thing with Method's cache downloader).
This program is an official part of the OpenRS movement started by blakeman8192.
Features
- Low-level API for editing the cache directory
- High-level API for managing most things automatically such as reference tables, checksums, versioning, archive packing/unpacking, etc
- Decodes and encodes the checksum/reference tables (including the new table which uses whirlpool digests and RSA encryption, some portions untested)
- Decodes and encodes containers
- Decodes and encodes archives
- Supports no compression, gzip and bzip2 (both compression/decompression, dkk's lib has problems with bzip2 compression)
- Supports whirlpool digests (untested but should work)
- The high level API supports adding new entries to archives, modifying existing entries in archives, adding new files and modifying existing files (if you want to remove entries, right now you'll need to use the low level API and do it manually)
- Full support for encoding and decoding sprites (including transparency and sprites with multiple 'frames')
- Support for decoding item definitions (still requires some stuff to be finished for decoding, no encoding yet)
- XTEA implementation included, however, it is untested and you'll need to write code to deal with it using the lower-level APIs
- No code from the client - it is clean, well-documented and free from copyright issues
Screenshot
Although this is a library intended for embedding in your own applications, the rules state we must include a screenshot. So this is a picture of an item's name being edited:

Credits
- [user]Graham[/user]
- [user]`Discardedx2[/user]
- Paulo Barreto and Vincent Rijmen (Whirlpool implementation)
- Keiron Liddle (bzip2 implementation)
Also thanks to Sean for pointing out some bugs and defyboy for his research into the cache format.
Download
The code is licensed under the GNU GPLv3 license. The full terms are included in a file named LICENSE and can also be found on the GNU website.
MediaFire link: openrs-cachelib.zip
Last edited by a moderator: