@@ -9,8 +9,41 @@ TranscodingStreams.jl
9
9
10
10
![ TranscodingStream] ( /docs/src/assets/transcodingstream.png )
11
11
12
- TranscodingStreams.jl is a package for transcoding data streams. Transcoding can
13
- be any codec. The following packages support the interfaces of this package:
12
+ TranscodingStreams.jl is a package for transcoding data streams. There are two
13
+ kinds of APIs:
14
+ ``` julia
15
+ using TranscodingStreams, CodecZlib
16
+
17
+ # Some text.
18
+ text = """
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sollicitudin
20
+ mauris non nisi consectetur, a dapibus urna pretium. Vestibulum non posuere
21
+ erat. Donec luctus a turpis eget aliquet. Cras tristique iaculis ex, eu
22
+ malesuada sem interdum sed. Vestibulum ante ipsum primis in faucibus orci luctus
23
+ et ultrices posuere cubilia Curae; Etiam volutpat, risus nec gravida ultricies,
24
+ erat ex bibendum ipsum, sed varius ipsum ipsum vitae dui.
25
+ """
26
+
27
+ # Streaming API.
28
+ stream = IOBuffer (text)
29
+ stream = TranscodingStream (GzipCompression (), stream)
30
+ stream = TranscodingStream (GzipDecompression (), stream)
31
+ for line in eachline (stream)
32
+ println (line)
33
+ end
34
+ close (stream)
35
+
36
+ # Array API.
37
+ array = Vector {UInt8} (text)
38
+ array = transcode (GzipCompression (), array)
39
+ array = transcode (GzipDecompression (), array)
40
+ @assert text == String (array)
41
+ ```
42
+
43
+ Each codec has an alias for its transcoding stream type. For example,
44
+ ` GzipCompressionStream{S} = TranscodingStream{GzipCompression,S} where S<:IO ` .
45
+
46
+ The following packages support the interfaces of TranscodingStreams.jl:
14
47
- [ CodecZlib.jl] ( https://github.com/bicycle1885/CodecZlib.jl )
15
48
- [ CodecBzip2.jl] ( https://github.com/bicycle1885/CodecBzip2.jl )
16
49
- [ CodecXz.jl] ( https://github.com/bicycle1885/CodecXz.jl )
0 commit comments