internal/pkg: decompress zstd streams
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 3m2s
Test / ShareFS (push) Successful in 4m3s
Test / Hakurei (push) Successful in 4m16s
Test / Sandbox (race detector) (push) Successful in 5m37s
Test / Hakurei (race detector) (push) Successful in 6m49s
Test / Flake checks (push) Successful in 1m11s

This uses internal/zstd until compress/zstd becomes available.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-07-23 22:18:06 +09:00
parent 5d3e47d8e7
commit 390f3b2dae
19 changed files with 12310 additions and 0 deletions
+10
View File
@@ -6,6 +6,8 @@ import (
"fmt"
"io"
"os"
"hakurei.app/internal/zstd"
)
const (
@@ -13,6 +15,8 @@ const (
Gzip = iota
// Bzip2 denotes a stream compressed via [bzip2].
Bzip2
// Zstd denotes a stream compressed via [zstd].
Zstd
)
// A decompressArtifact is a [FileArtifact] decompressing a backing
@@ -117,6 +121,12 @@ func (a *decompressArtifact) Cure(r *RContext) (io.ReadCloser, error) {
io.Closer
}{bzip2.NewReader(br), br}, nil
case Zstd:
return struct {
io.Reader
io.Closer
}{zstd.NewReader(br), br}, nil
default:
return nil, os.ErrInvalid
}