# Backdraft

## a JavaScript library for building browser-hosted user interfaces

  * employs a familiar, frugal, and powerful  API that includes declarative composition *as well as* traditional type specialization.
  * small--about 2000 lines of pure, modern JavaScript
  * faster than almost all and *as fast as any* component-construction library
  * *no* compilation step required
  * *zero* external dependencies in the library code
  * FreeBSD licensed

## Website

Backdraft is extensively documented at [backdraftjs.org](http://backdraftjs.org)

## Install

Note: master is under dev; if you want a working version, use npm.

With `npm`:

```
npm install bd-core
```

With `yarn`:

```
yarn add bd-core
```

With `bower`:

```
bower install --save bd-core
```

For more details see [http://backdraftjs.org/install.html](http://backdraftjs.org/install.html)


## Production Code

The Backdraft library makes no judgement about how you condition your code for production. Further, the library was designed from the ground up to avoid the need for extra code (and, therefore, complexity) in a "development" version. Therefore, simply include Backdraft in your build as if it was your own code; there is nothing more to it than that.

## Documentation

[Tutorial](http://backdraftjs.org/tutorial.html)

[Reference Manual](http://backdraftjs.org/docs.html)

[Blog](http://backdraftjs.org/blog/top.html)

## Examples

The GitHub repo [altoviso/backdraft-examples](https://github.com/altoviso/backdraft-tutorial) includes several examples including all [tutorial](http://backdraftjs.org/tutorial.html) code, the [todomvc example](https://github.com/tastejs/todomvc), and the [js-framework-benchmark example](https://github.com/krausest/js-framework-benchmark).

## Tests

To run the tests, start a http server that can serve the project directory and navigate to

http://<your-host-name>/bd-core/node_modules/bd-smoke/smoke-runner.html


## Support

If you have a usage question, please open an issue on [stackoverflow](https://stackoverflow.com/questions/ask/advice?); please tag the question with "backdraft".

If you've found a bug, please open an issue in this repository. Your chances of getting attention are *much* higher if you provide a reproducible test case.

You may also request an enhancement by opening an issue. Again, your chances of getting that enhancement incorporated into future releases are *much* higher if you provide a pull request with a test.

## Commercial Support

Commercial support and program design and construction services are available from [ALTOVISO LLC](http://www.altoviso.com). You may email requests to [consult@altoviso.com](mailto:consult@altoviso.com) or contact us directly at 925.229.0667 8:00 A.M. - 6:00 P.M., Pacific Time Zone.

