/socketstream

A framework for Realtime Web Apps

Primary LanguageJavaScriptMIT LicenseMIT

SocketStream!

SocketStream

Build Status Dependency Status devDependency Status Code Climate Codacy Badge NPM version Gitter chat Issue Stats Issue Stats Coverage Status Stories in Ready

Introduction

SocketStream is a framework for Realtime Web Apps

Latest release: 0.5.3 unstable (view changelog)

Live demo | Documentation

For existing SocketStream installations you may want to remain on 0.4.5 for a while. It is the most backwards compatible and robust and well covered by tests. It should be ready for production.

The coming releases will see a lot of changes to accommodate new transport options modern browsers and mobile apps. The API will remain largely the same, but there are bound to be some changes.

Installation

npm install -g socketstream

Usage

socketstream new <your_app_name>
cd <your_app_name>
npm install
npm start

Then open a web browser at localhost:3000:

open http://localhost:3000

Upgrade from 0.3 or 0.4 to 0.5

To make SocketStream more stable some major dependencies have been moved out. Please add these modules to package.json.

  • socketstream-cookie-session: 0.5.x
  • engine.io: 1.5.2
  • engine.io-client: 1.5.2
  • redis: 0.12.1
  • connect: 3.4.0

Why SocketStream?

The Real-Time web has been touted for years, and it is very much in use. However there remains a number of challenges that have not been solved. Web Sockets will remain an important technology for delivering a live experience on your website or mobile app. However with HTTP/2 and WebRTC other options come into play. SocketStream will help you to mix and match depending on what you aim to build.

It gives you tools to manage your project:

  • Providing a sensible place to put everything
  • Accelerating deployment with integrated asset packing and CDN support
  • Production Deployment skeleton
  • Good debugging output

Integration points:

  • Accelerating development with Live Reload and (optional) support for Stylus, Jade, and other transpilers.
  • Add-ons can be dropped in without configuration needed picking between Cookie and Token based auth.

Easy progression from REST

A good REST API will remain the right solution for many scenarios. Web pages will remain based on HTTP. Streaming is pixie dust sprinkled on top. SocketStream will be refactored to support a gradual addition on pixie dust keeping the REST structure as the central point.

Batteries included:

  • Dependencies are peer, so you pick the versions you want to use.
  • Built-in CommonJS bundler (ES6 on-the-way)
  • Built in formatter integration for: Sass, LESS, Stylus, Jade, Hogan
  • Built in template engine integration for: HTML5, React, Angular, jQuery
  • Built in transport integration for: Socket.io and SockJS
  • Examples

Building a simple chat app that uses websockets is easy, but rich, non-trivial, responsive realtime UI without ending up with a mess of code is hard SocketStream eases the pain by:

How to

Applications using SocketStream

  • Dashku: Realtime dashboards and widgets using HTML, CSS and JavaScript. Also hosted at dashku.com.
  • SketchDeck: An app for designing great slide decks from sketches, also a Y Combinator tech startup.
  • Hollow: An interactive, emmy-nominated documentary.
  • Bitjoy: Realtime Bitcoin prices and news.
  • Teeleader: A booking engine for Golf courses.

Presentations

Videos

(most recent at end)

Documentation

Checkout the documentation here.

Team

Owner: Henrik Vendelbo

Original Creator: Owen Barnes

Core Contributors:

  • Paul Jensen
  • Roman Minkin
  • Robert Hall
  • Joshua Cullick

Contact

License

SocketStream is released under the MIT license.