I've made a simple-to-use basic RuneScape cache utility. It has some very basic reading capabilities and supports item/npc definition loading.
The crate is currently (as of writing this thread) at version 0.2.6. The crate is passively maintained, meaning more features will be added in the
future once I require them for my own server project.
You can find rs-cache on [Only registered and activated users can see links. ] or on [Only registered and activated users can see links. ].
To get started try looking at the [Only registered and activated users can see links. ] or the [Only registered and activated users can see links. ].
The crate contains integration tests and examples to make using rs-cache as easy as possible, you can also find more examples in the documentation.
The following features are currently provided:
- Reading from the cache.
- Huffman buffer access.
- Checksum with simple-to-use validation.
- Compression and decompression:
- Loaders & Definitions
- ItemLoader - ItemDefinition
- NpcLoader - NpcDefinition
At this time there are no other crates that offer OSRS cache interactions so I figured I would fill the void. This is my first crate and my understanding of RSPS's could be better.
I wanted to share this crate anyway to make it easier for other people to start their own servers using rust and as a personal learning experience.
I'm currently slowly working towards supporting RS3. More definitions are planned in future releases.
If you have any feedback that would improve any aspect of my crate, please let me know! You can do this by creating an [Only registered and activated users can see links. ].
I hope this crate is of some use to anyone. Thank you for reading!
Nice work! If I can give some recommendations after writing a cache library myself:
1. Don't push your full cache to git. You can extract groups from the cache and push those for integration tests.
2. Split domain codecs and file codecs. So put your "definitions" in a different crate. This makes it so you can re-use the core part for multiple different games.
3. Use Jagex naming. See [Only registered and activated users can see links. ] for more information or check the NXT/TFU artifacts.
The problem is RS3's cache is too large so I might need something like a BufReader around a file handle for reading.
At the moment I'm only trying to support OSRS but I might look into making it generic enough to support more different games.
About splitting domain codecs and file codecs: do you mean as a sub-crate of rs-cache or as a stand-alone crate?
These recommendations are really helpful, thank you!
The repository you linked looks amazing with how detailed it is! I'm going to give it a look and apply some changes to my crate.
See, the repository I linked as an example. I have Jagex-Store-5 as a general purpose library for reading/writing data. It can be used for JS5 client/servers or for game specific implementations. I currently only support 1 game (OSRS) which is in a different repository: [Only registered and activated users can see links. ]. It uses Jagex-Store-5 to read/write the data. Reading all the data into memory can be good for stuff like file servers but other than that it's probably not that useful. I created an abstraction for just reading raw data and reading files/groups/archives. You can then also support multiple back-ends like from memory, from disk or from a remote server.
damn thank you coder
Does this also grab anims for items from cache?
I'm working on adding all of the definitions but lately I got a bit distracted with other stuff. I will get to sequences in the future though, I just don't know when.
|« Uni Drops Editor - One tool for Multiple Formats [PI, Asteria, Matrix and more soon] | - »|
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)