{"action":"created","issue":{"url":"https://api.github.com/repos/kevva/decompress-unzip/issues/4","labels_url":"https://api.github.com/repos/kevva/decompress-unzip/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/kevva/decompress-unzip/issues/4/comments","events_url":"https://api.github.com/repos/kevva/decompress-unzip/issues/4/events","html_url":"https://github.com/kevva/decompress-unzip/pull/4","id":57345603,"number":4,"title":"Use yauzl instead of adm-zip","user":{"login":"shinnn","id":1131567,"avatar_url":"https://avatars.githubusercontent.com/u/1131567?v=3","gravatar_id":"","url":"https://api.github.com/users/shinnn","html_url":"https://github.com/shinnn","followers_url":"https://api.github.com/users/shinnn/followers","following_url":"https://api.github.com/users/shinnn/following{/other_user}","gists_url":"https://api.github.com/users/shinnn/gists{/gist_id}","starred_url":"https://api.github.com/users/shinnn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shinnn/subscriptions","organizations_url":"https://api.github.com/users/shinnn/orgs","repos_url":"https://api.github.com/users/shinnn/repos","events_url":"https://api.github.com/users/shinnn/events{/privacy}","received_events_url":"https://api.github.com/users/shinnn/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-02-11T17:08:56Z","updated_at":"2015-02-11T17:21:44Z","closed_at":"2015-02-11T17:21:43Z","pull_request":{"url":"https://api.github.com/repos/kevva/decompress-unzip/pulls/4","html_url":"https://github.com/kevva/decompress-unzip/pull/4","diff_url":"https://github.com/kevva/decompress-unzip/pull/4.diff","patch_url":"https://github.com/kevva/decompress-unzip/pull/4.patch"},"body":"* I added more tests to cover various cases.\r\n* I replaced [adm-zip](https://github.com/cthackers/adm-zip) with [yauzl](https://github.com/thejoshwolfe/yauzl).\r\n  * yauzl is really faster than adm-zip.\r\n  * [yauzl can read buffer directly](https://github.com/thejoshwolfe/yauzl#frombufferbuffer-callback). So we don't need to create/remove temporary files.\r\n  * [adm-zip project has no test](https://github.com/cthackers/adm-zip/blob/f757ce4c264c042affdd5121625a38208745bf87/test/index.js). It's risky for us to use such an untested module.\r\n* I added benchmark script.\r\n  * Here is the benchmark result on my Mac OS X.\r\n\r\n  ```\r\n                  Extract ZIP archive\r\n         1,783 op/s » current version (using yauzl)\r\n           367 op/s » older version (using adm-zip)\r\n\r\n                  Extract ZIP archive (nested file)\r\n         1,992 op/s » current version (using yauzl)\r\n           339 op/s » older version (using adm-zip)\r\n\r\n                  Extract ZIP archive (multiple files)\r\n         1,784 op/s » current version (using yauzl)\r\n           431 op/s » older version (using adm-zip)\r\n  ```\r\n  As you can see, yauzl version is about 5 times faster than adm-zip version!\r\n\r\nBenchmark script is included in the last commit. If you don't want to add it, I'll remove the last commit.\r\n"},"comment":{"url":"https://api.github.com/repos/kevva/decompress-unzip/issues/comments/73922801","html_url":"https://github.com/kevva/decompress-unzip/pull/4#issuecomment-73922801","issue_url":"https://api.github.com/repos/kevva/decompress-unzip/issues/4","id":73922801,"user":{"login":"kevva","id":709159,"avatar_url":"https://avatars.githubusercontent.com/u/709159?v=3","gravatar_id":"","url":"https://api.github.com/users/kevva","html_url":"https://github.com/kevva","followers_url":"https://api.github.com/users/kevva/followers","following_url":"https://api.github.com/users/kevva/following{/other_user}","gists_url":"https://api.github.com/users/kevva/gists{/gist_id}","starred_url":"https://api.github.com/users/kevva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevva/subscriptions","organizations_url":"https://api.github.com/users/kevva/orgs","repos_url":"https://api.github.com/users/kevva/repos","events_url":"https://api.github.com/users/kevva/events{/privacy}","received_events_url":"https://api.github.com/users/kevva/received_events","type":"User","site_admin":false},"created_at":"2015-02-11T17:21:44Z","updated_at":"2015-02-11T17:21:44Z","body":"Really sick benchmarks. This is awesome!"}}