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:
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
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
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
Former libraries that we still accept patches for, but are not under active development.
Before you make an issue, please read our Contributing guide.
You can find the core team in Gitter chat.
See Releases.