Breeze.js

Breeze helps with tough client-side data management chores such as free-form query and save of complex model object graphs (Customer.Order.OrderDetails.Product), tracking changes, data binding, model validation, and serializing object graphs for offline scenarios.