This module is actively being developed. If you are a fearless developer that isn't scared for a couple bugs you're more than welcome to go on this adventure. If not, please wait until 1.0 has been released.
BigPipe is a radical new web framework that is inspired by the concept behind
Facebook's BigPipe. The general idea is to decompose web pages in to small
re-usable chunks of functionality called
Pagelets and pipeline them through
several execution stages inside web servers or browsers. This allows progressive
rendering at the front-end and results in exceptional front-end performance.
BigPipe is distributed through the node package manager (npm) and is written against Node.js 0.10.x.
npm install --save bigpipe
Everything in BigPipe is build upon the EventEmitter interface. It's either a plain EventEmitter or a proper stream. This a summary of the events we emit:
||public||server||A new log message.|
||public||server||Transform a Pagelet|
||public||server||Transform a Page|
||public||server||The server is listening|
||public||server||The HTTP serer received an error|
The library makes use the
debug module and has all it's internals namespaced
bigpipe:. These debug messages can be trigged by starting your application
DEBUG= env variable. In order to filter out all messages except
bigpipe's message run your server with the following command:
DEBUG=bigpipe:* node <server.js>
DEBUG namespaces are available:
bigpipe:serverThe part that handles the request dispatching, page / pagelet transformation and more.
Tests are automatically run on Travis CI to ensure that everything is
functioning as intended. For local development we automatically install a
pre-commit hook that runs the
npm test command every time you commit changes.
This ensures that we don't push any broken code in to this project.
BigPipe is released under MIT.