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