ql-io/ql.io
{ "createdAt": "2011-10-30T06:46:59Z", "defaultBranch": "master", "description": "A node.js based declarative, data-retrieval and aggregation gateway for quickly consuming HTTP APIs", "fullName": "ql-io/ql.io", "homepage": "http://ql.io", "language": "JavaScript", "name": "ql.io", "pushedAt": "2013-04-24T18:38:47Z", "stargazersCount": 929, "topics": [], "updatedAt": "2025-01-02T01:14:31Z", "url": "https://github.com/ql-io/ql.io"}ql.io is a declarative, data-retrieval and aggregation gateway for quickly consuming HTTP APIs. See ql.io for docs, demos and examples.

How to Build ql.io
Section titled “How to Build ql.io”To build ql.io on your own, you need node (version 0.8.0 or later) and npm. In Ubuntu, you need libexpat-dev additionally. Once you have these set up, do the following:
git clone git://github.com/ql-io/ql.io.gitcd ql.iomake installNote If you get “ERR! Error: EACCES, Permission denied” errors, please take a look at npm issue #194 and what-no-sudo.
These steps will link ql.io modules locally so can you refer to those modules from your apps using
npm link.
To run tests
make testql.io source is organized into several modules that you can test independently.
cd modules/enginemake testUsing ql.io as a Stand-Alone Server
Section titled “Using ql.io as a Stand-Alone Server”If you are interested in using ql.io as a stand-alone server, setup a new ql.io app and start the server.
mkdir myappcd myappcurl https://raw.github.com/ql-io/ql.io/master/modules/template/init.sh | bashbin/start.shUsing latest versions of Firefox or Chrome, go to http://localhost:3000 to see ql.io’s Web Console. See the Quickstart Guide for more details.
Using ql.io in a Node App
Section titled “Using ql.io in a Node App”If you are interested in using ql.io in your node app, use
npm install ql.io-engineAfter that you can simply execute the core engine.
var Engine = require('ql.io-engine');var engine = new Engine({ connection: 'close'});
var script = "create table geocoder " + " on select get from 'http://maps.googleapis.com/maps/api/geocode/json?address={address}&sensor=true' " + " resultset 'results.geometry.location'" + "select lat as lattitude, lng as longitude from geocoder where address='Mt. Everest'";
engine.execute(script, function(emitter) { emitter.on('end', function(err, res) { console.log(res.body[0]); });});Making Contributions
Section titled “Making Contributions”Fixes and features via pull requests are welcome as long as the contributor agrees to the Contributor License Agreement. Print, sign, and email a scanned copy to subbu/AT/ebaysf/DOT/com before submitting the first pull request.
To help move pull requests quickly, consider socializing your idea in the email group.
Discussions
Section titled “Discussions”Subscribe to the google group.
