ANN: DataScript, in-memory database and datalog queries in ClojureScript
Hi! I’m glad to announce my new library, DataScript. It’s an open-source, from-the-scratch implementation of in-memory immutable database aimed at ClojureScript with API and data model designed after Datomic. Full-featured Datalog queries included. Library is here: https://github.com/tonsky/datascript Also check out this blog post about why you may need a database in a browser: http://tonsky.me/blog/decomposing-web-app-development/ Feedback welcome! -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: ANN: DataScript, in-memory database and datalog queries in ClojureScript
Hi Nikita Can you explain what you mean from the limitations on the GitHub Readme? This: No history support, though history can be implemented on top of immutable DB values Seems to contradict: Immutability simplifies things even in single-threaded browser environment. Keep track of app state evolution, rewind to any point in time, always render consistent state, sync in background without locking anybody. How do you rewind to any point without history support? I feel like I'm not reading this correctly. Thanks, Daniel. On Friday, April 25, 2014 7:38:35 PM UTC+12, Nikita Prokopov wrote: Hi! I’m glad to announce my new library, DataScript. It’s an open-source, from-the-scratch implementation of in-memory immutable database aimed at ClojureScript with API and data model designed after Datomic. Full-featured Datalog queries included. Library is here: https://github.com/tonsky/datascript Also check out this blog post about why you may need a database in a browser: http://tonsky.me/blog/decomposing-web-app-development/ Feedback welcome! -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: ANN: DataScript, in-memory database and datalog queries in ClojureScript
Hi Daniel, First sentence was written from Datomic standpoint. In Datomic, all history is kept in the database ref. Given ref to an immutable DB, you can rewind back to any point in time. I can guess that each DB value consist of indexes to current, latest state + append-only history log. There's also special API call for it, history. In DataScript, however, each immutable DB value is a value for just now, for latest moment that holds true. I do not keep history for values and do not support history API. There's not append-only history log built-in into DataScript. But still, DataScript DB is based on persistence data structures, meaning that DB before transact! and DB after transact! share a lot of inner structure between them. You can, on top of that immutable DB values, create just a vector of databases and store values of DB as it evolves there. This kind of history is not in the box, but is trivial to add on top. Motivation for that is that you rarely need audit queries in the browser where DB may exist for 30 seconds and dies when browser window closes. Immutability is important, referencing and doing queries to historical DB value are important, but doing queries accross whole history is not so. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.