The current encoding of cache value for storage is encoding/gob. It is known to be inefficient in comparison to other serialization formats. This PR changes the serialization from gob to protocol buffers for efficiency. Although protobuf may not be the most efficient serialization format, it is popular thus ensures support and bug fixes will continue.
The use of Buf is to ease the pain of compiling protobuf files. Given the simplicity of the use case, I opted not to use the common and often recommendation of versioning and splitting the packages. I doubt the format will change drastically in a breaking manner.
The current encoding of cache value for storage is
encoding/gob
. It is known to be inefficient in comparison to other serialization formats. This PR changes the serialization from gob to protocol buffers for efficiency. Although protobuf may not be the most efficient serialization format, it is popular thus ensures support and bug fixes will continue.The use of Buf is to ease the pain of compiling protobuf files. Given the simplicity of the use case, I opted not to use the common and often recommendation of versioning and splitting the packages. I doubt the format will change drastically in a breaking manner.
Souin PR darkweak/souin#538