@@ -4,7 +4,7 @@ TranscodingStreams.jl
44<!-- [![Appveyor Status][appveyor-img]][appveyor-url]-->
55[ ![ Docs Stable] [ docs-stable-img ]] [ docs-stable-url ]
66[ ![ Docs Latest] [ docs-latest-img ]] [ docs-latest-url ]
7- [ ![ TravisCI Status] [ travisci-img ]] [ travisci-url ]
7+ [ ![ Build Status] ( https://github.com/JuliaIO/TranscodingStreams.jl/actions/workflows/CI.yml/badge.svg?branch=master )] ( https://github.com/JuliaIO/TranscodingStreams.jl/actions/workflows/CI.yml?query=branch%3Amaster )
88[ ![ codecov.io] [ codecov-img ]] [ codecov-url ]
99
1010![ TranscodingStream] ( /docs/src/assets/transcodingstream.png )
@@ -54,6 +54,14 @@ array = Vector{UInt8}(text)
5454array = transcode (GzipCompressor, array)
5555array = transcode (GzipDecompressor, array)
5656@assert text == String (array)
57+
58+ # Pre-allocated API
59+ import TranscodingStreams: Buffer
60+ compressed_buffer = Buffer (Vector {UInt8} (undef, ncodeunits (text)))
61+ decompressed_buffer = Buffer (codeunits (text))
62+ transcode (GzipCompressor, decompressed_buffer, compressed_buffer)
63+ transcode (GzipDecompressor, compressed_buffer, decompressed_buffer)
64+ @assert text == String (decompressed_buffer. data)
5765```
5866
5967Each codec has an alias to its transcoding stream type for ease of use. For
@@ -70,17 +78,17 @@ included in this package except the `Noop` codec, which does nothing to data.
7078The user need to install codecs as a plug-in to do something meaningful.
7179
7280The following codec packages support the protocol suite:
73- - [ CodecZlib.jl] ( https://github.com/bicycle1885 /CodecZlib.jl )
74- - [ CodecXz.jl] ( https://github.com/bicycle1885 /CodecXz.jl )
75- - [ CodecZstd.jl] ( https://github.com/bicycle1885 /CodecZstd.jl )
76- - [ CodecBase.jl] ( https://github.com/bicycle1885 /CodecBase.jl )
77- - [ CodecBzip2.jl] ( https://github.com/bicycle1885 /CodecBzip2.jl )
78- - [ CodecLz4.jl] ( https://github.com/invenia /CodecLz4.jl ) by Invenia.
79-
80- [ travisci-img ] : https://travis-ci.org/bicycle1885 /TranscodingStreams.jl.svg?branch=master
81- [ travisci-url ] : https://travis-ci.org/bicycle1885 /TranscodingStreams.jl
82- [ codecov-img ] : http://codecov.io/github/bicycle1885 /TranscodingStreams.jl/coverage.svg?branch=master
83- [ codecov-url ] : http://codecov.io/github/bicycle1885 /TranscodingStreams.jl?branch=master
81+ - [ CodecZlib.jl] ( https://github.com/JuliaIO /CodecZlib.jl )
82+ - [ CodecXz.jl] ( https://github.com/JuliaIO /CodecXz.jl )
83+ - [ CodecZstd.jl] ( https://github.com/JuliaIO /CodecZstd.jl )
84+ - [ CodecBase.jl] ( https://github.com/JuliaIO /CodecBase.jl )
85+ - [ CodecBzip2.jl] ( https://github.com/JuliaIO /CodecBzip2.jl )
86+ - [ CodecLz4.jl] ( https://github.com/JuliaIO /CodecLz4.jl ) by Invenia.
87+
88+ [ travisci-img ] : https://travis-ci.org/JuliaIO /TranscodingStreams.jl.svg?branch=master
89+ [ travisci-url ] : https://travis-ci.org/JuliaIO /TranscodingStreams.jl
90+ [ codecov-img ] : http://codecov.io/github/JuliaIO /TranscodingStreams.jl/coverage.svg?branch=master
91+ [ codecov-url ] : http://codecov.io/github/JuliaIO /TranscodingStreams.jl?branch=master
8492[ docs-stable-img ] : https://img.shields.io/badge/docs-stable-blue.svg
8593[ docs-stable-url ] : https://juliaio.github.io/TranscodingStreams.jl/stable/
8694[ docs-latest-img ] : https://img.shields.io/badge/docs-latest-blue.svg
0 commit comments