guycipher / k4

High-performance open-source, durable, transactional embedded storage engine designed for low-latency, and optimized read and write efficiency.
https://pkg.go.dev/github.com/guycipher/k4
BSD 3-Clause "New" or "Revised" License
155 stars 4 forks source link

LZ4 compression #6

Closed guycipher closed 2 days ago

guycipher commented 3 days ago

No third party packages. Writing compress and decompress methods from scratch following LZ4 algorithm specification and add an optional option to K4 which would compress and decompress keys and and their values.

guycipher commented 2 days ago

I'd like to keep the package with no outside resources but Snappy would be nice.

guycipher commented 2 days ago

https://github.com/golang/snappy looks good but not sure how thoroughly tested it is. I could review and fork possibly but I'd rather implement a compression algorithm from scratch. I am reading into this aspect at the moment.

guycipher commented 2 days ago

Implemented a basic Lempel-Ziv 1977 inspired library which works rather well. Will finalize and commit. Closing this up.