Skip to content

Ruby implementation of LZ-String compression algorithm

License

Notifications You must be signed in to change notification settings

altivi/lz_string

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lz-string

Ruby implementation of LZ-String compression algorithm.

Supports:

  • Raw compression
  • UTF-16 compression
  • Base64 compression

Installation

Install the latest release:

$ gem install lz_string

In Rails, add it to your Gemfile:

gem 'lz_string'

How to use

Normal Compression and Decompression:

  # Compress
  compressed = LZString.compress("Hello world!")
  => "҅〶惶@✰Ӏ葀"
  
  # Decompress
  LZString.decompress(compressed)
  => "Hello world!"

UTF-16 Compression and Decompression:

  some_string = '{"some": "json", "foo": [{"bar": "؋", "key": "؄"}], "ঞᕠ": "൱ඵቜ"}'
  
  # Compress
  compressed = LZString::UTF16.compress(some_string)
  => "ᯡࡓ䈌\u0B80匰ᜠр\u0AF2Ǹ䀺㈦イ\u0530්C¦¼䒨ᨬිnj〩痐࠸С㸢璑Ч䲤U⋴ҕ䈥㛢ĉ႙  "
  
  # Decompress
  LZString::UTF16.decompress(compressed)
  => "{\"some\": \"json\", \"foo\": [{\"bar\": \"؋\", \"key\": \"؄\"}], \"ঞᕠ\": \"൱ඵቜ\"}"

Base64 Compression and Decompression:

  # Compress
  compressed = LZString::Base64.compress("Hello world!")
  => "BIUwNmD2AEDukCcwBMCEQ==="
  
  # Decompress
  LZString::Base64.decompress(compressed)
  => "Hello world!"

Tests

$ rake

About

Ruby implementation of LZ-String compression algorithm

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages