Coder Social home page Coder Social logo

sevenzip's Introduction

SevenZip

Carthage compatible

SevenZip is an Objective-C wrapper framework around p7zip (v16.02), which in turn is a Unix port of 7zip.

Requirements

To build: Xcode 8, Swift 3
To use: OSX 10.9, iOS 8.4

(It probably runs on earlier platform versions as well but I didn't care enough to check.)

Building

  1. clone this repo

  2. from the repo root, run

    $ scripts/setup.sh
    
  3. open the Xcode project and build the SevenZip (OSX)/SevenZip (iOS) target

If you just want to toy with it, take a look at the SVZDemo/SVZDemo-iOS apps (separate targets).

Features

  • listing the archive contents
  • extracting all/some files from archives to file/memory
  • creating new archives with files/directories
  • adding/removing files to/from existing archives
  • support for password-protected archives
  • specifying compression level

Coming soon: tests, automated builds, documentation, free candy/beer. Until then, submit your requests/bug reports as issues.

Disclaimer

At the moment, the project is still in an early stage of development but you can already do all the usual stuff with 7z archives from code without having to get your hands dirty with the underlying MFC/COM+/OLE/godknowswhat implementation.

Be warned that the code is experimental, has few tests, and is provided as-is. Be prepared for unwanted/undefined behavior, data losses, nazgul attacks etc.

Credits

  • the guy behind p7zip, for doing the lion's share of porting
  • Oleh Kulykov's LzmaSDK-ObjC for some inspiration about implementing custom streams
  • pixelglow's ZipZap for their API I shamelessly copied

sevenzip's People

Contributors

lvsti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sevenzip's Issues

Support more codecs

currently only LZMA/2 are supported, but BCJ/2 is also common in archives

Doesn't handle other files than .7z

Thus far I tried .rar and .zip files and every time I try to open such an archive I get this error message:
Error Domain=SVZArchiveErrorDomain Code=-2 "(null)"

I did a little bit of debugging and found out, that no matter what kind of archive I try to open, the "Open" method in "7zHandler" is executed and I suppose e.g. for a .rar file the "Open" method in "RarHandler" should be used instead.

Progress tracking

@lvsti does this framework support progress tracking? I don't think it does but just in case I've missed it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.