Comments (10)
Chrome is interested in this feature, and wants to add this feature. Are there any opinions from other browser vendors?
from compression.
Note that zip files can be decompressed (and checksummed!) using gzip:
const GZIP_HEADER = Uint8Array.from([
31, 139, // gzip magic
8, // deflate
0, // no extra fields
0, 0, 0, 0, // mtime (n/a)
0, 0, // extra flags, OS
]);
function decompressZip(stream, crc, uncompressedSize) {
return stream.pipeThrough(new TransformStream({
start(controller) {
controller.enqueue(GZIP_HEADER);
},
flush(controller) {
const tmp = new DataView(new ArrayBuffer(8));
tmp.setUint32(0, crc, true);
tmp.setUint32(4, uncompressedSize, true);
controller.enqueue(new Uint8Array(tmp.buffer));
}
})).pipeThrough(new DecompressionStream('gzip'));
}
from compression.
Note that for the creation side, you need CRC, so you may as well use gzip there too.
from compression.
@taralx That's impressive, but I'd prefer it if people didn't have to put together a fake gzip wrapper just to decode a zip file.
I like the CRC trick. It doesn't look like there'd be an easy way to get the same functionality with "deflate-raw".
from compression.
In decompression it can be a constructor option. In compression though, I'm not sure either.
from compression.
I am likewise looking for support of 'inflate-raw'
and 'deflate-raw'
formats.
from compression.
We are also interested in having support for "deflate-raw" as it is required for zipping. With "gzip" or "deflate" formats, additional workarounds would be required which is not very neat. So, it would be super helpful if raw compression format can be supported.
Thanks!
from compression.
Working at #43. Any feedbacks will be appreciated.
from compression.
@ricea I cannot close this, but I think this can be closed now.
from compression.
Done.
from compression.
Related Issues (20)
- Compress arraybuffer example HOT 1
- Readable byte stream HOT 2
- Standards home? HOT 19
- Include brotli HOT 16
- Shipping status? (Unity3D use cases) HOT 1
- Blocking APIs in Workers? HOT 1
- Get unused data from end of DecompressionStream? HOT 4
- Support for decompressing multi-member gzip files? HOT 1
- Getting snappy over Snappy
- Handling of trailing data after deflate-raw final block HOT 4
- Use enum for `format` parameter? HOT 4
- Why TypeError instead of DOMException DataError for decompression failure? HOT 3
- Should the spec allow enqueueing on-the-go instead of storing them until the input is exhausted? HOT 1
- zstd support HOT 7
- Resolved Promises of WritableStreamDefaultWriter Methods HOT 1
- On-demand flush HOT 3
- SSL certificate error HOT 2
- The served document is still in W3C style HOT 1
- Conformance should be in terms of Infra
- DecompressionStream should support pull-based decompression HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from compression.