Skip to content

Commit

Permalink
docs: capture missing features in own document
Browse files Browse the repository at this point in the history
Pulled a lot of content from `news.rst` into a new page. Also
added some items from 1.5.4.
  • Loading branch information
indygreg committed Feb 20, 2023
1 parent 3b6cd5c commit 132b600
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 94 deletions.
87 changes: 27 additions & 60 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ python-zstandard
buffer
contributing
news
missing_features
74 changes: 74 additions & 0 deletions docs/missing_features.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
==================================
Missing and Unimplemented Features
==================================

This document attempts to capture features of the zstd C API that are currently
not exposed to Python.

If there is a feature on this page that would be beneficial to you, please
open a GitHub issue requesting its implementation. If an existing GitHub
issue exists, please leave a comment on the issue to amplify the importance of
the request (this project's author doesn't monitor the emoji counts).

Missing Constants
=================

* ``ZSTD_CLEVEL_DEFAULT``
* ``ZSTD_SRCSIZEHINT_MIN``
* ``ZSTD_SRCSIZEHINT_MAX``
* ``ZSTD_BLOCKSIZE_MAX_MIN``
* ``ZSTD_DECOMPRESSION_MARGIN``

Compression and Decompression Parameters
========================================

* ``ZSTD_p_forceAttachDict``
* ``ZSTD_dictForceLoad``
* ``ZSTD_c_targetCBlockSize``
* ``ZSTD_c_literalCompressionMode``
* ``ZSTD_c_srcSizeHint``
* ``ZSTD_d_stableOutBuffer``
* ``ZSTD_c_enableDedicatedDictSearch``
* ``ZSTD_c_stableInBuffer``
* ``ZSTD_c_stableOutBuffer``
* ``ZSTD_c_blockDelimiters``
* ``ZSTD_c_validateSequences``
* ``ZSTD_c_useBlockSplitter``
* ``ZSTD_c_useRowMatchFinder``
* ``ZSTD_d_forceIgnoreChecksum``
* ``ZSTD_d_refMultipleDDicts``
* ``ZSTD_refMultipleDDicts_e``
* ``ZSTD_c_prefetchCDictTables``
* ``ZSTD_c_enableSeqProducerFallback``
* ``ZSTD_c_maxBlockSize``
* ``ZSTD_c_searchForExternalRepcodes``
* ``ZSTD_d_disableHuffmanAssembly``
* ``ZSTD_d_stableOutBuffer``

Missing Functions
=================

* ``ZSTDMT_toFlushNow()``
* ``ZSTD_minCLevel()``
* ``ZSTD_cParam_getBounds()``
* ``ZSTD_dParam_getBounds()``
* ``ZSTD_generateSequences()``
* ``ZSTD_mergeBlockDelimiters()``
* ``ZSTD_compressSequences()``
* ``ZSTD_writeSkippableFrame()``
* ``ZSTD_decompressionMargin()``
* ``ZSTD_sequenceBound()``

Missing Features
================

* ``ZSTD_getFrameProgression()`` isn't exposed everywhere it could be.
* Compression parameters cannot be modified mid operation.
* ``ZSTD_Sequence`` and related ``ZSTD_getSequences()`` not exposed.
* ``ZSTD_threadPool`` not exposed.
* ``ZSTD_sequenceProducer_F`` and ``ZSTD_registerSequenceProducer()`` not
exposed.
* ``ZSTD_CCtx_getParameter()``, ``ZSTD_CCtxParam_getParameter()``, and
``ZSTD_DCtx_getParameter()`` could be leveraged for parameter retrieval.
* ``ZSTD_CCtx_setCParams()`` could potentially be utilized.
* ``ZSTD_error_*`` constants / error codes not exposed.
34 changes: 0 additions & 34 deletions docs/news.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,46 +30,12 @@ Actions Blocking Release
* Detect memory leaks via bench.py.
* Remove low-level compression parameters from ``ZstdCompressor.__init__`` and
require use of ``ZstdCompressionParameters``.
* Expose ``ZSTD_getFrameProgression()`` from more compressor types.
* Support modifying compression parameters mid operation when supported by
zstd API.
* Expose ``ZSTD_CLEVEL_DEFAULT`` constant.
* Expose ``ZSTD_SRCSIZEHINT_{MIN,MAX}`` constants.
* Support ``ZSTD_p_forceAttachDict`` compression parameter.
* Support ``ZSTD_dictForceLoad`` dictionary compression parameter.
* Support ``ZSTD_c_targetCBlockSize`` compression parameter.
* Support ``ZSTD_c_literalCompressionMode`` compression parameter.
* Support ``ZSTD_c_srcSizeHint`` compression parameter.
* Use ``ZSTD_CCtx_getParameter()``/``ZSTD_CCtxParam_getParameter()`` for retrieving
compression parameters.
* Consider exposing ``ZSTDMT_toFlushNow()``.
* Expose ``ZSTD_Sequence`` struct and related ``ZSTD_getSequences()`` API.
* Expose and enforce ``ZSTD_minCLevel()`` for minimum compression level.
* Consider a ``chunker()`` API for decompression.
* Consider stats for ``chunker()`` API, including finding the last consumed
offset of input data.
* Consider exposing ``ZSTD_cParam_getBounds()`` and
``ZSTD_dParam_getBounds()`` APIs.
* Consider controls over resetting compression contexts (session only, parameters,
or session and parameters).
* Consider exposing ``ZSTD_d_stableOutBuffer``.
* Support ``ZSTD_c_enableDedicatedDictSearch``.
* Support ``ZSTD_c_stableInBuffer``.
* Support ``ZSTD_c_stableOutBuffer``.
* Support ``ZSTD_c_blockDelimiters``.
* Support ``ZSTD_c_validateSequences``.
* Support ``ZSTD_c_useBlockSplitter``.
* Support ``ZSTD_c_useRowMatchFinder``.
* Support ``ZSTD_d_forceIgnoreChecksum``.
* Support ``ZSTD_d_refMultipleDDicts``.
* Support ``ZSTD_generateSequences()``.
* Support ``ZSTD_mergeBlockDelimiters()``.
* Support ``ZSTD_compressSequences()``.
* Support ``ZSTD_threadPool`` APIs for managing a thread pool.
* Support ``ZSTD_refMultipleDDicts_e``.
* Support ``ZSTD_writeSkippableFrame()``.
* Utilize ``ZSTD_getDictID_fromCDict()``?
* Utilize ``ZSTD_DCtx_getParameter()``.
* Stop relying on private libzstd headers and symbols (namely ``pool.h``).

Other Actions Not Blocking Release
Expand Down

0 comments on commit 132b600

Please sign in to comment.