7 ms·
Javascript RAR reader
- newsmaster 13y agoVery nice. Client side JS is getting more and more powerful. I've been playing with a JS gif compiler lately and I'm amazed it's even possible.
- thristian 13y agoThat's interesting. So far as I know, the only documentation of the RAR compression algorithm is the official UnRAR tool¹, which (among other things) restricts you from using it to create a RAR-writer. There's also the GPL'd "unrar" based on UnRAR 2 (which doesn't handle modern RAR 3.x archives), and the GPL'd "unar"². Given that this is under the MIT licence, it can't be derived from any of those other tool, so I guess it must be a from-scratch reimplementation. Well done! ¹: http://www.rarlab.com/rar/unrarsrc-5.0.12.tar.gz http://www.rarlab.com/rar/unrarsrc-5.0.12.tar.gz ²: http://unarchiver.c3.cx/commandline http://unarchiver.c3.cx/commandline
- anonymous 13y agoA more likely explanation is that the author frankly doesn't give a damn about such restriction.
- deleted 13y ago[deleted]
- _delirium 13y agoThis doesn't look like it actually does decompression, which makes the amount of reverse-engineering it needs to do considerably less.
- justincormack 13y agoThe GPL is a copyright license and does not apply to a reimplementation.
- goggles99 13y agoIs this just a POC to prove that JavaScript can be fast? This is a serious question. I am having a difficult time thinking of practical uses for this.
- lmm 13y agoImagine a photo-sharing webapp that allowed users to drag a rar file in and then pick which images to upload. I'm sure there are other use cases, but that one immediately comes to mind.
- kybernetyk 13y agoI don't know ... that sounds like a pretty rare edge case. Photos you usually want to share are JPGs and 'raring' them doesn't do much good in terms of space saving. The only image files you'd like to compress are those that are taking too much space (tiffs, raw images, etc). And if you take the extra effort to put them into an archive it's likely that they are taking up really a lot of space. Thus it's very very likely that even one of those images is too big to upload it to the internet (tens of megabytes if not more) with today's common end user internet connections.
- lmm 13y agoPeople often have collections of images that are kept in rars or zips not for compression (which as you say this is no good for) but for convenience and organization. Or consider e.g. the "cbr" pseudo-format, where comics are stored as a rar of images, one per page. I can well imagine a web-based CBR viewer.
- tdj 13y agoIt would be good to note that this implementation doesn't actually support de-compression (as is also noted in the to-do list). It is able to read headers and other metadata, as well as unpack files, but only if they're stored without compression: https://github.com/43081j/rar.js/blob/master/dist/rar.js#L545 https://github.com/43081j/rar.js/blob/master/dist/rar.js#L54... If I understand RAR, it actually uses a embedded virtual machine to specify the compression algorithm. That would have been the fun part.
- talles 13y agoExtremely useful, nice.
- bigd 13y ago$(document).ready(unrar(totallyL3git.rar))
- bigd 13y agoBetter explain before the shitstorm: I find it a neat idea, but is is something like this possibly dangerous?