@@ -72,3 +72,43 @@ Missing Features
7272 ``ZSTD_DCtx_getParameter() `` could be leveraged for parameter retrieval.
7373* ``ZSTD_CCtx_setCParams() `` could potentially be utilized.
7474* ``ZSTD_error_* `` constants / error codes not exposed.
75+
76+ Potential 1.0 Release Features
77+ ==============================
78+
79+ The following track features and changes we would nominally perform
80+ before a 1.0 release.
81+
82+ * Properly handle non-blocking I/O and partial writes for objects implementing
83+ ``io.RawIOBase ``.
84+ * Consider making reads across frames configurable behavior.
85+ * Overall API design review.
86+ * Use Python allocator where possible.
87+ * Figure out what to do about experimental APIs not implemented by CFFI.
88+ * APIs for auto adjusting compression parameters based on input size. e.g.
89+ clamping the window log so it isn't too large for input.
90+ * Consider allowing compressor and decompressor instances to be thread safe,
91+ support concurrent operations. Or track when an operation is in progress and
92+ refuse to let concurrent operations use the same instance.
93+ * Support for magic-less frames for all decompression operations (``decompress() ``
94+ doesn't work due to sniffing the content size and the lack of a ZSTD API to
95+ sniff magic-less frames - this should be fixed in 1.3.5.).
96+ * Audit for complete flushing when ending compression streams.
97+ * Deprecate legacy APIs.
98+ * Audit for ability to control read/write sizes on all APIs.
99+ * Detect memory leaks via bench.py.
100+ * Remove low-level compression parameters from ``ZstdCompressor.__init__ `` and
101+ require use of ``ZstdCompressionParameters ``.
102+ * Consider a ``chunker() `` API for decompression.
103+ * Consider stats for ``chunker() `` API, including finding the last consumed
104+ offset of input data.
105+ * Consider controls over resetting compression contexts (session only, parameters,
106+ or session and parameters).
107+ * Utilize ``ZSTD_getDictID_fromCDict() ``?
108+ * Stop relying on private libzstd headers and symbols (namely ``pool.h ``).
109+
110+ And other non-essential features:
111+
112+ * Support for block compression APIs.
113+ * API for ensuring max memory ceiling isn't exceeded.
114+ * Move off nose for testing.
0 commit comments