Giter Club home page Giter Club logo

Comments (4)

mossroy avatar mossroy commented on May 29, 2024

I did not test, but it looks like great work!
What was your final goal for writing this?

You might have seen that we implemented a (beta) javascript ZIM reader in https://github.com/kiwix/kiwix-html5, that works inside a desktop browser.
We consider splitting the UI and the backend, to have a standalone javascript ZIM reader. Maybe your code could be integrated inside this library, to have both the reader and the writer? Some code can probably be in common.

from mwoffliner.

kelson42 avatar kelson42 commented on May 29, 2024

@Vadp Hi, nice, I have tested it and it seems to work fine. The ZIM file I have created looks good and the size it almost the same like with zimwriterfs. The big difference is the speed, in my test it's around 3x time slower than with zimwriterfs (that it somehow a bit strange).

On a meta level a few remarks:

  • zimwriterfs is a generic tool but we use it mainly in mwoffliner which is also written in for nodejs
  • mwoffliner should ideally create the ZIM file on the fly using something in javascript. So the code you have written might be reused or https://github.com/cscott/node-libzim (which might be faster)
  • Finally we would be interested to have an ultimate portable solution in pure js (for example to build chrome/firefox extension)... and there it would be awesome to integrate your writting function to jszim (kiwix-html5), this might be an opportunity to spit properly the jszim from kiwix-html5.

I do not know what were your motivation to create zimmer, but maybe you might be interested in continuing on that way? Let us know. Anyway congratulation for zimmer (and having added it to openzim.org).

from mwoffliner.

vss-devel avatar vss-devel commented on May 29, 2024

Hi @kelson42.

I wrote zimmer simply because zimwriterfs is not available on ubuntu and my sole intention was to have a more or less reliable method of building ZIMs for my own needs. I've also tried to make this code to fit somewhat with mwoffliner's workflow.

Apparently I wanted zimmer to be able to process the whole Wikipedia, so to keep memory footprint under control it uses sqilte to store temporary indexes. That's might be one of the reasons for it's relative slowness (although I've tried to take some measures). Another possible culprit if the compressor library, albeit this library apparently is able to utilise multiple cores.

Anyway, for myself I've achieved what I needed, but if there is some interest from the mwoffliner developers then I'd be happy to modify zimmer provide some interface so to allow mwoffliner to build ZIM on fly. Perhaps it's slowness wouldn't be that much of an issue. Actually, I've (svadim) already submitted a couple of patches for mwoffliner when it was hosted at the sourceforge.

BTW To play with building Wikipedia ZIM I've also made a simple "unzimmer". It could be hardly used though for doing any kind of interactive job.

from mwoffliner.

kelson42 avatar kelson42 commented on May 29, 2024

Here the goal is to integrate nodejs-libzim, which is simply the fastest solution.

from mwoffliner.

Related Issues (20)

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.