Client-side data management for Angular apps


Breeze queries, saves, and takes care of all data interactions between client and server.

If you store data in a database, query and save data as complex object graphs, and share graphs across multiple views—and want to do it in JavaScript—there is no better way than with Breeze.

Todo-Angular runs in modern browsers such as IE9, IE10, and recent Chrome, Safari, Firefox, and WebKit browsers. Breeze does not support AngularJS apps running in older browsers that lack ECMAScript 5 property getters and setters.

Rich Queries

Query the server and client cache with filters, ordering, paging, and projections.

// Query for the first 10 'S'-Persons, sorted by name
// returns a promise with callbacks
return breeze.EntityQuery("Customers")
             .where("name", "startsWith", "S")


Client caching

Cache queried, new, and changed data on client for a responsive UI.

var query = new EntityQuery("Todos").where(predicate); 
// from the example above
var results = manager.executeQueryLocally(query);


Change tracking

Track changes, raise events, and validate using rules in metadata and rules you write.

/* Change tracking */
// save all changes (if there are any)
if (manager.hasChanges()) {
// listen for any change to a customer
// listen for validation errors


Angular data binding

Breeze works great with the tools you already use.

<!-- Angular template -->
<li data-ng-repeat="emp in employees">

// bound to employees from query
       .then(function(data) { $scope.employees = data.results; });


Try the tutorial

Our interactive tutorial guides you through Breeze's core features.

Live Tutorial