README.md in extzstd-0.1.1 vs README.md in extzstd-0.2

- old
+ new

@@ -1,70 +1,35 @@ # extzstd - ruby bindings for Zstd (Zstandard) -This is unofficial ruby bindings for compression library +This is unofficial ruby bindings for the data compression library [Zstd (Zstandard)](https://github.com/facebook/zstd). * package name: extzstd - * version: 0.1.1 - * software quality: EXPERIMENTAL - * license: BSD-2-clause License + * version: 0.2 + * product quality: TECHNICAL PREVIEW, UNSTABLE + * license: [BSD-2-clause License](LICENSE) * author: dearblue <mailto:dearblue@users.noreply.github.com> - * report issue to: <https://github.com/dearblue/ruby-extzstd/issues> - * dependency ruby: ruby-2.1+ + * project page: <https://github.com/dearblue/ruby-extzstd> + * support ruby: ruby-2.2+ * dependency ruby gems: (none) * dependency library: (none) * bundled external C library: - * zstd-1.1.4 <https://github.com/facebook/zstd/tree/v1.1.4> + * [zstd-1.3.3](https://github.com/facebook/zstd) + under selectable dual licensed ([BSD-3-clause License](https://github.com/facebook/zstd/blob/v1.3.3/LICENSE) and [GNU General Public License, version 2](https://github.com/facebook/zstd/blob/v1.3.3/COPYING)) + by [facebook](https://github.com/facebook) - under BSD-3-clause License <https://github.com/facebook/zstd/blob/v1.1.4/LICENSE> - - by facebook <https://github.com/facebook> - "extzstd" is supported decompression with the legacy formats (zstd-0.1 - 0.7). + * [HISTORY (in Japanese)](HISTORY.ja.md) + * [Quick reference](QUICKREF.md) -## Quick API Reference - * encoder (compression) - * ``Zstd.encode(buf, params = nil, dict: nil) -> encoded string`` - * ``Zstd.encode(outport, params = nil, dict: nil) -> an instance of Zstd::Encoder`` - * ``Zstd.encode(outport, params = nil, dict: nil) { |encoder| ... } -> block returned value`` - * ``Zstd::Encoder#write(buf) -> this instance`` - * ``Zstd::Encoder#close -> nil`` - - * decoder (decompression) - * ``Zstd.decode(zstd_buf, dict: nil) -> decoded string`` - * ``Zstd.decode(inport, dict: nil) -> an intance of Zstd::Decoder`` - * ``Zstd.decode(inport, dict: nil) { |decoder| ... } -> block returned value`` - * ``Zstd::Decoder#read(size = nil, buf = nil) -> buf`` - * ``Zstd::Decoder#close -> nil`` - - * stream encoder - * ``Zstd::StreamEncoder.new(params, dict)`` (``ZSTD_createCStream``, ``ZSTD_initCStream_advanced``) - * ``Zstd::StreamEncoder#update(src, srcoff, dest, maxdest) -> integer as new src offset`` (``ZSTD_compressStream``) - * ``Zstd::StreamEncoder#flush(dest, maxdest) -> dest`` (``ZSTD_flushStream``) - * ``Zstd::StreamEncoder#end(dest, maxdest) -> dest`` (``ZSTD_endStream``) - - * stream decoder - * ``Zstd::StreamDecoder.new(dict)`` (``ZSTD_createDStream``, ``ZSTD_initDStream_usingDict``) - * ``Zstd::StreamDecoder#update(src, srcoff, dest, maxdest) -> integer as new src offset`` (``ZSTD_decompressStream``) - - * instant (context less) encoder/decoder - * ``Zstd::ContextLess.encode(src, dest, maxdest, predict, params) -> dest`` (``ZSTD_compress_usingDict``, ``ZSTD_compress_advanced``) - * ``Zstd::ContextLess.decode(src, dest, maxdest, predict) -> dest`` (``ZSTD_decompress_usingDict``) - - * dictionary (*EXPEREMENTAL*) - * ``Zstd::Dictionary.train_from_buffer(buf, dict_capacity) -> dictionary'ed string`` (``ZDICT_trainFromBuffer``) - * ``Zstd::Dictionary.add_entropy_tables_from_buffer(dict, dict_capacity, sample) -> dict`` (``ZDICT_addEntropyTablesFromBuffer``) - * ``Zstd::Dictionary.getid(dict) -> dict id as integer`` (``ZDICT_getDictID``) - - ## HOW TO USE ### basic usage (simply encode/decode) -``` ruby:ruby +``` ruby # First, load library require "extzstd" # Prepair data source = "sample data..." * 50 @@ -81,11 +46,11 @@ p source == decdata # => true ``` ### Streaming compression (with block) -``` ruby:ruby +``` ruby outport = StringIO.new("") Zstd.encode(outport) do |encoder| encoder.write "abcdefg\n" encoder << "hijklmn\n" encoder.write "opqrstu\n" @@ -93,11 +58,11 @@ end ``` ### Streaming compression (without block and write to file) -``` ruby:ruby +``` ruby file = File.open("sample.zst", "wb") encoder = Zstd.encode(file) encoder.write "abcdefg\n" encoder << "hijklmn\n" @@ -108,10 +73,10 @@ file.close ``` ### Streaming decompression (with block and read from file) -``` ruby:ruby +``` ruby File.open("sample.zst", "rb") do |file| Zstd.decode(file) do |decoder| p decoder.read(8) # => "abcdefg\n" p decoder.read(1) # => "h" p decoder.read(2) # => "ij"