Happy to announce that Rum 0.12.0 has been released.
A major change in this release is Daiquiri — reworked fork of Sablono. The reason we went with a fork is to own the compiler/interpreter. Daiquiri removes input field wrappers, this was causing weird bugs with jumping caret. Similarly to Sablono, Daiquiri makes use of ClojureScript's type inference to reduce number of generated interpret
calls when compiling Hiccup. This applies to primitive types such as number
, string
, array
and function
, and also anything that is hinted as js/React.Element
, Rum components include the type hint implicitly.
Sablono's input wrappers exist because some ClojureScript React wrappers have their own update scheduling mechanism built on top of js/requestAnimationFrame
which doesn't play well with input fields. In this release we've removed Rum's scheduler, which allowed us to remove input wrappers and rely on React's scheduler, which is hopefully a lot smarter about orchestrating updates.
There's still a bunch of open issues. Also I'd like to put some time into assesing and improving Daiquiri's interpreter performance, as of now it's already ~30% faster than Sablono.
Please report issues in the repo github.com/tonsky/rum/issues