Giter VIP home page Giter VIP logo

Comments (5)

dahjelle avatar dahjelle commented on May 21, 2024 2

Well, as I said, I'm quite the n00b with ClojureScript, but here's my fork of Datascript that uses external indexes. Feel free to critique or contribute!

from datascript.

tonsky avatar tonsky commented on May 21, 2024

Indexes are required for fast query lookups and range searches. Slow access (full-scan) is already implemented for collections. IndexedDB would be a good data storage for DataScript, if only it had synchronous api. With callbacks, it seems very hard to use DataScript the ways I imagined it would be used.

from datascript.

boxxxie avatar boxxxie commented on May 21, 2024

Use core.async?
How hard would it be to add an async API?
Maybe a use-channels binding?

from datascript.

tonsky avatar tonsky commented on May 21, 2024

It will ruin the whole “db as a value” idea. You cannot do async callbacks during React render for example. Core.async callbacks will not allow for nested functions. And so on. Barriers where there shouldn’t be any. It will force you to split model and view model, extracting latter from the rendering code. This is a wrong kind of decoupling, because rendering code has high cohesion, it’s a mistake to break these apart because limitations of technology say so.

Also, it’s not clear what benefits of storing data in IndexedDB are?

from datascript.

dahjelle avatar dahjelle commented on May 21, 2024

I'd agree with @tonsky that the "db as a value" idea would be sad to lose—I've spent quite a bit of time connecting an async data source like IndexedDB to work with React, and it basically involves duplicating all of the data so that React sees it.

That said, it would be really nice to have a Datalog implementation with the option to hook in external, async indexes (like from IndexedDB or, in my case, PouchDB). I'm giving that a shot—though, since I'm quite the n00b with ClojureScript and Datalog versus JS, I'm just throwing in callbacks. I'll report back with a link to the fork if I get anywhere useful. ;-)

(P.S. If anyone has good core.async examples, I'd love to see them…especially on how to, say, implement in core.async a reduce function whose reducer function is async. As I said, I'm a n00b. ;-) )

from datascript.

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.