KnockoutJS is a client-side MVVM JavaScript library that is 40kb minified and 166kb debug. It has no dependencies and works on all mainstream browsers. KnockoutJS uses data-binding and automatic UI refresh to provide a high level link between the UI and data model. It features dependency tracking, declarative bindings, and templating. The document includes examples of basic bindings, custom bindings, mapping data, and binding contexts in KnockoutJS.