Socket
Book a DemoInstallSign in
Socket

sleep-ref

Package Overview
Dependencies
Maintainers
2
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sleep-ref

Reference implementation of the SLEEP protocol.

latest
Source
npmnpm
Version
1.1.0
Version published
Weekly downloads
18
28.57%
Maintainers
2
Weekly downloads
 
Created
Source

SLEEP

Build Status Build Status NPM version NPM

SLEEP is a protocol envisioned by @maxogden for open data publication and synchronization. It stands for Syncasble Lightweight Event Emitting Persistence, but is mostly just a pun on REST.

The official SLEEP spec lives on dataprotocols.org. sleep-ref doesn't necessarily follow the spec as it is currently written -- consider this to be more experimental.

This project is meant to iterate on the spec through implementation and also to produce a module that is easily usable by other databases to expose their data with SLEEP.

Server

var sleep = require('sleep-ref')
  , http = require('http')
  , net = require('net')
  ;

function getSequences (opts) {
  var c = mydatabase.getChangesStream(opts) // emits {id:'uuid', seq:1}, {id:'uuid2', seq:3}
  // if opts.include_data it emits e.g. c.data = mydatabase.get(c.id)
  return c
}

var sl = sleep(getSequences)

http.createServer(function (req, resp) {
  sl.httpHandler(req, resp)
})

net.createServer(function (socket) {
  sl.netHandler(socket)
})

Client

var sleep = require('sleep-ref')
  , changes = sleep.client('http://localhost:8888/', { include_data: true })
  ;
changes.on('data', function (entry) { console.log(entry) })
changes.on('end', function () { console.log('up to date') })

sleep.client(url[, opts]) takes all valid SLEEP options. The url responds to the following protocols: http:, https:, tcp:, and tls:. You can pass tls options to opts via the tls property.

Tests

% make test

or if you don't have make:

% npm install
% npm test

Keywords

SLEEP

FAQs

Package last updated on 22 Apr 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts