CanJS
WARNING: This npm package is for the CanJS client-side MV* libraries. It was formerly the node-can project which has been moved to socketcan. A HUGE thanks to Sebastian Haas for letting us use the
can
name!
NOTE: The
canjs
NPM package name is deprecated. Usecan
instead.
CanJS is a collection of the following client-side JavaScript architectural libraries:
Core Collection
The best, most hardened and generally useful libraries in CanJS.
- Custom elements — can-component
- Observable…
- Values — can-compute
- Custom types — can-define
- Lists — can-define/list/list
- Objects — can-define/map/map
- Data connection and service modeling — can-connect and can-set
- Routing — can-route and can-route-pushstate
- Live binding templates — can-stache, can-stache/helpers/route and can-stache-bindings
Infrastructure Collection
Utility libraries that power the core and ecosystem collections.
- Unique identifiers — can-cid
- Inheritable constructor functions — can-construct
- Declarative event bindings — can-control
- Event handling utilities — can-event, can-event/async/async, can-event/batch/batch, can-event/lifecycle/lifecycle
- An environment agnostic container for global variables - can-globals
- Namespace where can packages are registered — can-namespace
- Observable hooks needed by every other observable — can-observation
- Reflection for gets/sets, events, and type inference across object types - can-reflect
- Reflection to treat Promises as objects with value and state - can-reflect-promise
- Simple observable — can-simple-map
- A Symbol polyfill - can-symbol
- A stateful container for CanJS type information — can-types
- Common DOM and JS utilities — can-util
- View helpers
- Register custom elements or attributes in templates — can-view-callbacks
- Keeps part of the DOM up to date with a compute — can-view-live
- Read a view model from a custom element — can-view-model
- Maintains — can-view-nodelist
- Parses HTML and magic tags — can-view-parser
- Lookup scope within a stache template — can-view-scope
- A fast-path compile target — can-view-target
Ecosystem Collection
Useful libraries that extend or add important features to the core collection.
- Integrate can-connect with a FeathersJS Client (can-connect-feathers) or a SignalR Hub (can-connect-signalr)
- Call base functions from inside inheriting functions — can-construct-super
- Define property values using streams — can-define-stream
- Add validation methods and observables to a can-define/map/map using validate.js — can-define-validate-validatejs
- Simulate ajax requests (can-fixture) and socket.io services (can-fixture-socket)
- Cross-bind can events and jquery events — can-jquery
- Provides a set of converters useful for two-way binding with form elements — can-stache-converters
- Convert observable values into streams — can-stream and can-stream-kefir
- Shared utilities and type definitions to process validation errors — can-validate and can-validate-validatejs
- A virtual DOM that is able to run CanJS's templates — can-vdom
- Automatically render templates found in the document — can-view-autorender
- Import dependencies in CanJS views — can-view-import
- A context for tracking asynchronous activity in JavaScript applications — can-zone and a compatible memory-based storage — can-zone-storage
- A StealJS extension that allows stache templates as dependencies — steal-stache
Legacy Collection
Former libraries that we still accept patches for, but are not under active development.
Support / Contributing
Before you make an issue, please read our Contributing guide.
You can find the core team in Gitter chat.
Release History
See Releases.