Add rykv support for Serialization, Archive and Deserialization
Hello 👋 !
Just a small PR to add https://rkyv.org/ integration behind the rkyv feature!
Looks like you'll need to disable this feature for the MSRV test.
I'd also like to see documentation of the feature, maybe a section on features in the readme?
It also just occurred to me that there might be a possibility of a much more compact and efficient storage, if your archive format were able to store just one copy of each interned item. I'd you could store the values in an array and then for each Intern you would just store an index.
Not sure how you'd engineer this, but if sounds like rykv is performance oriented, so thought it might be interesting.
There is a preliminary implementation of archived string interning available here. It's still a bit rough for a release, but should get cleaned up soon.
Looks like you'll need to disable this feature for the MSRV test.
I'd also like to see documentation of the feature, maybe a section on features in the readme?
Okay, will do it!
It also just occurred to me that there might be a possibility of a much more compact and efficient storage, if your archive format were able to store just one copy of each interned item. I'd you could store the values in an array and then for each Intern you would just store an index.
Not sure how you'd engineer this, but if sounds like rykv is performance oriented, so thought it might be interesting.
Yes you're right about that, I tried doing something similar but I did not succeed right now 😅, so I kept this storage right now and added pass-through rkyv serialization/archive/deserialization to allow us using some optimisations but yeah, there are improvements to be made.
There is a preliminary implementation of archived string interning available here. It's still a bit rough for a release, but should get cleaned up soon.
Yes, I'm using this to do interning but I got troubles doing what I wanted: I'm deserializing a serialized rkyv hashmap with interning and I want to load it into the memory with interning while using the provided interning from rkyv to hydrate the Intern container and not creating it and checking against every value with Intern::new. I'll provide an isolated exemple as soon as possible for this part.
Just checking in. It looks like this still fails tests?
Yes, I didn't advance on this subject yet, I'll take a look next week