@callback compress(iodata()) :: binary()
@callback decompress(binary()) :: binary()
@callback name() :: String.t()