- Made it possible to listen on specific paths, which is especially good to have for precreated http servers [einaros]
- Extensive WebSocket / WebSocketServer cleanup, including changing all internal properties to unconfigurable, unenumerable properties [einaros]
- Receiver modifications to ensure even better performance with fragmented sends [einaros]
- Fixed issue in sender.js, which would cause SlowBuffer instances (such as returned from the crypto library's randomBytes) to be copied (and thus be dead slow) [einaros]
- Removed redundant buffer copy in sender.js, which should improve server performance [einaros]
- Added a browser based API which uses EventEmitters internally [3rd-Eden]
- Expose request information from upgrade event for websocket server clients [mmalecki]
- Added option to let WebSocket.Server use an already existing http server [mmalecki]
- Migrating various option structures to use options.js module [einaros]
- Added a few more tests, options and handshake verifications to ensure that faulty connections are dealt with [einaros]
- Code cleanups in Sender and Receiver, to ensure even faster parsing [einaros]
- Optimized Sender.js, Receiver.js and bufferutil.cc:
- Apply loop-unrolling-like small block copies rather than use node.js Buffer#copy() (which is slow).
- Mask blocks of data using combination of 32bit xor and loop-unrolling, instead of single bytes.
- Keep pre-made send buffer for small transfers.
- Leak fixes and code cleanups.
- Compile fix for Linux.
- Rewrote parts of WebSocket.js, to avoid try/catch and thus avoid optimizer bailouts.
- Further performance updates, including the additions of a native BufferUtil module, which deals with several of the cpu intensive WebSocket operations.
- Service release, fixing broken tests.
- Node.js v0.4.x compatibility.
- Code cleanups and efficiency improvements.
- WebSocket server added, although this will still mainly be a client library.
- WebSocket server certified to pass the Autobahn test suite.
- Protocol improvements and corrections - such as handling (redundant) masks for empty fragments.
- 'wscat' command line utility added, which can act as either client or server.
- Renamed to 'ws'. Big woop, right -- but easy-websocket really just doesn't cut it anymore!
- Rewrote much of the WebSocket parser, to ensure high speed for highly fragmented messages.
- Added a BufferPool, as a start to more efficiently deal with allocations for WebSocket connections. More work to come, in that area.
- Updated the Autobahn report, at http://einaros.github.com/easy-websocket, with comparisons against WebSocket-Node 1.0.2 and Chrome 16.
- Major rework to make sure all the Autobahn test cases pass. Also updated the internal tests to cover more corner cases.
- Back and forth, back and forth: now settled on keeping the api (event names, methods) closer to the websocket browser api. This will stick now.
- Started keeping this history record. Better late than never, right?