Backbone.js 2 votes

Give your JS App some Backbone with Models, Views, Collections, and Events

Backbone supplies structure to JavaScript-heavy applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing application over a RESTful JSON interface.

Author: Jeremy Ashkenas, and DocumentCloud
Repository: https://github.com/documentcloud/backbone/
Revision Control: Git
Licence: MIT/X11 Licence
Country of Origin: United States

Sammy.js 1 vote

A small web-framework with class

Sammy.js is a tiny JavaScript framework developed to ease the pain and provide a basic structure for developing JavaScript applications.

Sammy tries to achieve this by providing a small ‘core’ framework and an ever-growing list of plugins for specific functionality. The core includes a simple API for defining applications which are made up primarily of routes and events. By driving application development around a small and specific API, Sammy attempts to keep your code organized while still allowing a lot of breathing room to define your own style and structure.

Sammy is not a solution for every JavaScript application or problematic situation. It is a single and rather opinionated method for building applications that tries to lend itself to best practices and maintainable development. It does this without the overhead of a large base framework or a single method or system for building models or views. If you want something more fully featured I highly suggest checking out SproutCore or Cappucino.

Why

In the modern age of super-fast browsers and user expectations about the responsiveness and perceived speed of web applications – single page AJAX applications have become the rage (GMail, etc.) Furthermore, instead of just fetching full HTML and rendering it asynchronously, fetching raw data (JSON) and rendering on the client side has not only become possible – it’s actually very common.

Sammy.js was originally built as an experiment in designing APIs in JavaScript and was heavily inspired by Sinatra.rb. As Sammy evolved it aimed to solve the common problems associated with writing this new style of application. It became clear early on that Sammy was well suited for building simple applications on top of RESTful JSON data stores (See CouchDB).

Sammy continues to be fueled by the community and real-world production applications. It’s small enough that it can stay out of your way, and soon it will integrate with the DOM/AJAX Framework of your choice.

Knockout.js 0 votes

Simplify dynamic JavaScript UIs by applying the model-view-view Model (MVVM) pattern

Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably.

Headline features:

  1. Elegant dependency tracking - automatically updates the right parts of your UI whenever your data model changes
  2. Declarative bindings - a simple and obvious way to connect parts of your UI to your data model
  3. Flexible and sophisticated templating - construct a complex dynamic UI easily using arbitrarily nested templates
  4. Trivially extensible - implement custom behaviors as new declarative bindings for easy reuse in just a few lines of code

Additional benefits:

  1. Pure JavaScript library - works with any server or client-side technology
  2. Can be added on top of your existing web application without requiring major architectural changes
  3. Compact - around 25kb before gzipping
  4. Works on any mainstream browser (IE 6+, Firefox 2+, Chrome, Safari, others)
  5. Comprehensive suite of specifications (developed BDD-style) means its correct functioning can easily be verified on new browsers and platforms

Developers who’ve used Silverlight or WPF may recognize KO as an example of the MVVM pattern; developers more familiar with Ruby on Rails or other MVC technologies may see it as a real-time form of MVC with declarative syntax. In another sense, you can think of KO as a general way to make UIs for editing JSON data… whatever works for you :)

Author: Steven Sanderson
Repository: https://github.com/SteveSanderson/knockout
Revision Control: Git
Licence: MIT/X11 Licence
Country of Origin:

Gordon 0 votes

An open source Flash™ runtime written in pure JavaScript

Gordon lets you run your SWF movie files in a JavaScript based environment, without the need of any plugins or additional software. It takes advantage of the latest web technologies like SVG to render vector based graphics or Web Workers for enhanced performance and to parse even large SWF’s in the background, without blocking the user interface. Furthermore, it gives you full access and control of the resources, characters and timeline behaviours in your movie via JavaScript or DOM scripting.

Gordon was created and is maintained by me, Tobias Schneider, a web developer based in Munich, Germany.

Author: Tobias Schneider
Repository: https://github.com/tobeytailor/gordon
Revision Control: Git
Licence: MIT/X11 Licence
Country of Origin: Germany