A Node-based communications hub for multi-user SproutCore applications, serving as a unified database interface and automating distribution of data changes
JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 15 commits ahead, 164 commits behind mauritslamers:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
fixtures
lib
policies
tests
tmp
.gitmodules
README
myPolicies.sample.js
myRPCHooks.sample.js
myServer.sample.js
myUploadHooks.js
myUsers.sample.js

README

Thoth

Thoth is a Node-based communications hub for multi-user SproutCore applications, serving as a unified database interface and automating distribution of data changes

It simplifies the specification and maintenance of data models by only requiring them in your SproutCore application when used with a nonSQL database.

Features: 
 - Websocket support
 - Long polling support (might be a bit buggy still)
 - Session support
 - Policy (role-based permissions) and record filtering support
 - Authentication support (async)
 - Easy to implement custom storage modules (example mySQL, Riak and OrionDB storage modules included)
 - Automated updates pushed to connected clients

Written with a SproutCore application in mind. (http://www.sproutcore.com)
You can use Thoth in your SproutCore application by using the SC framework, which can be found on http://github.com/mauritslamers/Thoth-SC

Status: Between alpha and beta status...  
	
	What works: 
		- WebSocket connections in a WebSocket enabled browser
		- Long Polling XHR
		- Authentication from user data in a file
		- Session support
		- Automatic distribution of changes based on users previous requests
		- support for sending queries to the server
		- support for custom storage modules, such as fixtures
		- SC.DataSource client code for both XHR long polling and Websocket (see my Thoth-SC project)
		- MySQL support (you need the mysql client and bindings from my node-mysql-mysqlclient fork)

   What should work properly soon, but is already included (so feel free to help getting it to work!):
      - LDAP authentication
      - CouchDB adapter
      - MySQL support based on felixge's node-mysql
      - Riak adapter (had to switch deps on this one)
	
	What still needs to be implemented:
		- support for more Riak features in requests to the server
		- support for CouchDB automatic view creation based on Sproutcore models
		- additional authentication modules
		- adding automatic table creation for MySQL DBs
		- binary data support

Installation:
  
  The easiest way is cloning this repository. Be sure to also checkout the submodules by calling
  
  git submodule update --init 
  
  in the Thoth folder after cloning or forking.


Many thanks to juan77 and especially to Jeff Pittman (geojeff) for their continuing support and willingness to test and catch bugs!

License: MIT