It really depends on what you really want to do. Persevere , for example, is a JSON database that is built on top of Rhino but is able to work with CommonJS modules and is created around JSGI (web server interface) in the future.
Narwhal is a fairly reliable JavaScript library and is specifically designed to track the CommonJS standard as it evolves. By default, Narwhal runs on top of Rhino, but you can also install JavaScriptCore (and possibly v8) as additional βenginesβ. AO is very fast.
Various web frameworks are available (including Helma NG ).
Node.js places great emphasis on fast event-based, network-based event-based network services based on JS events. Node has recently been modified to use CommonJS modules.
SproutCore has a branch ("ticks") that is built on CommonJS modules. I personally use this for Bespin , of which the client side is fully CommonJS modules. (Ironically, the server side is currently in Python, but we have plans to also switch to CommonJS on the server.)
What you need to remember about CommonJS is that it is an API specification. It can be many implementations. So far, the only part of the specification that is widely supported is the modules ... the rest is still baking, but is going well.
CommonJS has not yet reached the level of interoperability, say CPython / Jython / IronPython, but it certainly has this potential in the future.
Kevin dangoor
source share