Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Multiframe ZSTD file: how to jump to and stream the second file?

オープン
#4,569 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
ドキュメント
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
python
領域
api

調査の方向性

まず Python zstandard API と、提供されている compressed_offset、uncompressed_offset、compressed_size メタデータを確認します。呼び出し元が chunk_1.ndjson から開始し、フレーム全体を読み込まずに解凍された行をストリーミングできる方法を検証してから、確認済みの使用方法とその完了条件を文書化します。

索引モデルが issue の本文から書いたものです。

説明

TL;DR: This is not about bugs of ZSTD but about how to take advantage of its feature:


I compress two ndjson files into a multiframe ZST file where each ndjson is compressed into a frame. I have the following metadata meta_data (as a list) of the ZST file:

import zstandard as zstd
from pathlib import Path

input_file  = r"E:\Personal projects\tmp\test.zst"
input_file  = Path(output_file)

meta_data = [{'name'                : 'chunk_0.ndjson',
              'uncompressed_size'   : 2147473321,
              'compressed_offset'   : 0,
              'uncompressed_offset' : 0,
              'compressed_size'     : 175631248},
             {'name'                : 'chunk_1.ndjson',
              'uncompressed_size'   : 2147473321,
              'compressed_offset'   : 175631248,
              'uncompressed_offset' : 2147473321,
              'compressed_size'     : 175631248}]

In Python, how can we leverage the above meta_data to seek to chunk_1.ndjson, start decompressing, and stream it line-by-line? In this way, we don't need to

  • decompress chunk_0.ndjson,
  • load the whole compressed chunk_1.ndjson into the memory.

Thank your for your help.

主要言語
C
スター
28.1k
フォーク
2.7k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

facebook/zstd のほかの issue

facebook/zstd の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。