defmodule ZStandard do @moduledoc ~S""" ZStandard compression and decompression. For more information see: [ZStandard](https://facebook.github.io/zstd/). """ @on_load :load_nif @doc false @spec load_nif :: :ok | no_return def load_nif do path = :filename.join(:code.priv_dir(:z_standard), 'z_standard_nif') :ok = :erlang.load_nif(path, 0) end @doc ~S""" Compress uncompressed data with a compression level of `1`. See: `compress/2` to set a specific compression level between 0 - 22. """ @spec compress(uncompressed :: binary) :: binary def compress(uncompressed), do: compress(uncompressed, 1) @doc ~S""" Compress uncompressed data with the given level of compression. """ @spec compress(uncompressed :: binary, level :: 0..22) :: binary def compress(uncompressed, level) def compress(_, _), do: :erlang.nif_error(__ENV__.line) @doc ~S""" Decompress compressed data. """ @spec decompress(compressed :: binary) :: binary def decompress(compressed) def decompress(_), do: :erlang.nif_error(__ENV__.line) end