mesto is a MEmory STOrage for ClojureScript, I wrote it because of my
experience writing JS apps using Backbone.js.

http://github.com/piranha/mesto

Idea is that you have atom (or atoms), containing all information you need
to show to user. Storing this information directly in DOM is not a nice
option, since it's slower, it's harder to access and overall is not a
welcome practice.

Of course, you could have such an atom yourself, so what mesto gives you?
It gives you simple language for queries and events.

Simple language is an extension of usual Clojure paths, used in
get-in/assoc-in: [:items {:id 1}]. Here {:id 1} serves as a filter for list
of :items. See readme (on Github) for better description.

Events give you an ability to act when your data changes. Event binding
system also supports filters (same as querying system) and puts actual
bindings in the same data storage as your data lies in, so you can bind
handlers on binding of handlers (sorry :).

Anyway, this is it. I hope to use it as a basis for FRP system (I'm already
experimenting with Flapjax, if you have something working written in
Clojure please let me know).

I also thought about using Datalog for querying atoms and subscribing to
their changes, but honestly it's too unfamiliar  complex and poorly
documented for me to use it productively *and* improve (i.e. add events).
Also it's too slow (minimal query takes 1-5 ms in *Clojure*, not even
ClojureScript). Implementation of Datalog from Datomic is easier to
understand, but then it's closed, so...

Also the code of mesto could be written much better (as in
quality/readability and performance), but I really wanted to get it done.

I would really like to hear some feedback, so if you have any remarks,
questions, or think it shouldn't be done like that, please reply to this
message.

Thank you for reading this email.

-- 
Alexander

-- 
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

Reply via email to