A framework for building scalable realtime web API services
JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
public
test
views
.dir-locals.el
.gitignore
.travis.yml
LICENSE
NEWS.md
README.md
index.js
package.json

README.md

README

"Droonga" (distributed-groonga) is built with the protocol adapter part named "express-droonga" and the Droonga engine part named "fluent-plugin-droonga". This is "express-droonga".

About express-droonga

express-droonga provides a framework for building scalable realtime Web API services for Express.

Usage

Server

If both express-droonga and droonga engine are running on the same machine, you can initialize the express-droonga instance easily.

var express = require('express'),
    droonga = require('express-droonga');

var application = express();
var server = require('http').createServer(application);
server.listen(80); // the port to communicate with clients

application.droonga({
  prefix: '/droonga',
  tag:    'droonga',
  server: server, // this is required to initialize Socket.IO API!
  extraCommands: [ // optional
    // extra command will be sent to droonga engine via the Socket.IO API, as is.
    'droonga.reindex'
  ]
});

Otherwise, you have to specify pairs of host and port to send messages to the engine and to receive messages from the engine.

application.droonga({
  prefix: '/droonga',
  tag:    'droonga',
  server: server,
  extraCommands: [
    'droonga.reindex'
  ],

  // host and port to send messages to the engine
  hostName: 'backend.droonga.example.org',
  port:     24224,

  // host and port to receive messages from the engine
  receiveHostName: 'express.droonga.example.org',
  receivePort:     10030
});

Client (REST)

Frontend applications can call REST APIs to access resources stored in the droonga. For example:

GET /droonga/tables/entries?query=foobar HTTP/1.1

It works as a search request, and a JSON string will be returned as the result.

Client (Socket.IO)

Frontend applications can call raw APIs via Socket.IO. For example:

var socket = io.connect('http://example.com:80');
socket.on('search.result', function(data) {
  var records = data.body.records;
  ...
});
socket.emit('search', { query: 'foobar' });

In Socket.IO APIs, you'll send requests and receive results separately.

License

The MIT License. See LICENSE for details.

Copyright (c) 2013-2014 Droonga project