Giter VIP home page Giter VIP logo

Comments (6)

bcomnes avatar bcomnes commented on June 14, 2024

As we talked about, lets try to go the nosql leveldb way to better understand leveldb and to persist said metadata.

from hyperamp.

bcomnes avatar bcomnes commented on June 14, 2024

Some reading:

from hyperamp.

ungoldman avatar ungoldman commented on June 14, 2024

rethinking how we deal with reading, storing, retrieving metadata a bit.

what do you think of

  • scanning the client-specified media library folder in the main process
  • streaming those results to something like https://github.com/blahah/yunodb
  • sending limited metadata to the client via IPC (after initial scan is complete)
    • send searches to the db, return results to renderer
    • take advantage of paged results for default and filtered lists
    • use a smarter datagrid implementation to deal with paging/large amounts of rows

that way we limit any possible slowdown on the renderer and offload heavier work to the main process, we start interacting with leveldb a bit more, and we have a persistent document store

from hyperamp.

bcomnes avatar bcomnes commented on June 14, 2024

Sorry I missed your feedback until now. Like the general idea a lot. I don't know anything about yunodb so I'm going to read about it. My thinking was that we would use something like https://github.com/sethvincent/level-model and stream processing to achieve paging and stuff, but I'm open to things that already do this. Part of me things we should really be using SQLite for indexing, but I'm hoping that using levels will eventually come in handy for replicating library info with hyperlog, or something like it (booo conflicts).

I imagine in order to have a robust grid we will also need something like data-grid.

I think the best approach is to just take a stab or two at the problem and see where we get.

from hyperamp.

bcomnes avatar bcomnes commented on June 14, 2024

I'm thinking we should preserve the streaming interfaces (automatic paging) with something like this:

https://github.com/pfrazee/pauls-electron-rpc

Its basically https://github.com/maxogden/websocket-stream + https://github.com/substack/multiplex-rpc but for IPC instead of websockets.

But yes, having a single level/db instance on the main process, and then have the player request streams of data / chunks of arrays of objects to render.

from hyperamp.

bcomnes avatar bcomnes commented on June 14, 2024

What a yack shave.

I just persisted on save using electron-config, despite writing 4 leveldb modules. I say this is closed by
#114 for now.

Open new issues when we start tackling larger music library persistence.

from hyperamp.

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.