Arbor, Mug, I, Ristretto
Arbor

Arbor (GitHub: samizdatco / arbor) by Christian Swinehart is a graph visualisation library that uses jQuery and web workers. It provides a layout algorithm and graph organisation for building things like this: Atlas demo.
Arbor has a particle system which manages the state of the simulation:
sys = arbor.ParticleSystem();
node = sys.addNode('mynode', { mass:2, myColor:'goldenrod' });
Arbor’s API seems pretty easy to learn, so if you’d like to present data in a novel way or create some kind of simulation it’s worth checking out.
Mug
Mug (GitHub: timcameronryan / mug) by Tim Cameron Ryan is a JavaScript compiler for the JVM. The benefits according to the author are:
- Mug is faster than Rhino, favoring static compilation rather than a runtime interpreter.
- Minimal overhead. Standard library mug-js.jar is ~150kb.
- Mug’s goal is that compiled code be as similar to Java as possible, and easily debuggable.
- Mug uses CommonJS modules as its compilation units, allowing your code to be shared between Mug, node.js, RingoJS, and other implementations.
He also says the Mug compiler is written in Clojure, a language which I enjoy getting time to use. Take a look at compiler.clj if you’re interested in what that might look like.
Emphasis
Michael Donohoe at the New York Times has released their open source Emphasis library (GitHub: NYTimes / Emphasis). This library makes it possible to “deep link” to specific article text — double tapping the shift key displays paragraph icons which can be clicked to highlight a paragraph. Selecting a paragraph or a sentence within it updates the URL hash with parameters that can be used to share the highlight.
This library requires Prototype. To see more open source code from New York Times, take a look at the New York Times GitHub account.
I
I by Rob Robbins is a dependency manager with defer and async support. The name leads to some memorable API method names: I.amDefined, I.require, etc.
The library comes with some Ruby tools to read source and generate dependency files.
Ristretto
Ristretto by Adrien Friggeri is another dependency management tool with concatenation which can be installed with npm. It can be used with JavaScript or Coffee. What made this interesting to me is it allows developers to use CommonJS modules and then write out a browser-friendly file.
If you’ve been following our Let’s Make a Framework Series you’ll know I made a simplified CommonJS module-based testing system, but getting modules to behave in a browser was tricky to say the least. Adding support for CommonJS modules to Ristretto seems like a smart move.