Initial work
Create Reader Pulled back in Inode decoding and superblock New Data and Metadata readers Added getting of id, fragment, and export table data lazily Added README to squashfs/squashfs
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
package decompress
|
||||
|
||||
type Decompressor interface {
|
||||
Decompress([]byte) ([]byte, error)
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package decompress
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
|
||||
"github.com/pierrec/lz4/v4"
|
||||
)
|
||||
|
||||
type Lz4 struct{}
|
||||
|
||||
func (l Lz4) Decompress(data []byte) ([]byte, error) {
|
||||
rdr := lz4.NewReader(bytes.NewReader(data))
|
||||
return io.ReadAll(rdr)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package decompress
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
|
||||
"github.com/ulikunitz/xz/lzma"
|
||||
)
|
||||
|
||||
type Lzma struct{}
|
||||
|
||||
func (l Lzma) Decompress(data []byte) ([]byte, error) {
|
||||
rdr, err := lzma.NewReader(bytes.NewReader(data))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return io.ReadAll(rdr)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package decompress
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/rasky/go-lzo"
|
||||
)
|
||||
|
||||
type Lzo struct{}
|
||||
|
||||
func (l Lzo) Decompress(data []byte) ([]byte, error) {
|
||||
return lzo.Decompress1X(bytes.NewReader(data), len(data), 0)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package decompress
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
|
||||
"github.com/therootcompany/xz"
|
||||
)
|
||||
|
||||
type Xz struct{}
|
||||
|
||||
func (x Xz) Decompress(data []byte) ([]byte, error) {
|
||||
rdr, err := xz.NewReader(bytes.NewReader(data), 0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return io.ReadAll(rdr)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package decompress
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"compress/zlib"
|
||||
"io"
|
||||
)
|
||||
|
||||
type Zlib struct{}
|
||||
|
||||
func (z Zlib) Decompress(data []byte) ([]byte, error) {
|
||||
rdr, err := zlib.NewReader(bytes.NewReader(data))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rdr.Close()
|
||||
return io.ReadAll(rdr)
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package decompress
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
|
||||
"github.com/klauspost/compress/zstd"
|
||||
)
|
||||
|
||||
type Zstd struct{}
|
||||
|
||||
func (z Zstd) Decompress(data []byte) ([]byte, error) {
|
||||
rdr, err := zstd.NewReader(bytes.NewReader(data))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rdr.Close()
|
||||
return io.ReadAll(rdr)
|
||||
}
|
||||
Reference in New Issue
Block a user