Files
zlib/README.md
2022-01-27 11:55:55 +01:00

41 lines
1.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# zlib.carp
is a high-level wrapper around [zlib](https://zlib.net/).
## Installation
```clojure
(load "git@git.veitheller.de:carpentry/zlib.git@0.0.2")
```
## Usage
The `ZLib` module provides only two functions, `inflate` and `deflate`. These
functions work in tandem to provide you with data compression.
```clojure
; deflate returns a Result of either binary data or an error message
(let [deflated (ZLib.deflate "mystring")]
(match deflated
; inflate returns a Result of either a string or an error message
(Success bin) (println* &(inflate bin))
(Error msg) (IO.errorln &msg)))
```
Because its a `Result` type, we can apply combinators to it.
```clojure
(=> (ZLib.deflate "mystring")
(Result.and-then &ZLib.inflate)
(Result.map-error &(fn [msg] (do (println* &msg) msg)))
)
```
You can also choose different levels of compression using `deflate-with`. The
levels are defined in `ZLib.ZLevel`, and are `NoCompression`, `BestSpeed`,
`BestCompression`, and `DefaultCompression`, which is, well, the default.
<hr/>
Have fun!