Echo JS, brid.js, ql.io

Alex R. Young





libraries modules social parsing

Echo JS, brid.js, ql.io

Posted by Alex R. Young on .

libraries modules social parsing

Echo JS, brid.js, ql.io

Posted by Alex R. Young on .

Echo JS

Echo JS (GitHub: antirez / lamernews) is a social news site
that focuses on JavaScript. I've already found some interesting
libraries through it, and I basically read about JavaScript every day so
it gets my vote.

It's built with "Lamer News" which is a Ruby-based Hacker News
implementation. Can't someone write them a slick real-time Node version
with the cutting edge server-side and client-side libraries that we all
know and love?

If you prefer Twitter for consuming news, there's also
@echojs. It's currently getting around five posts a day which seems promising. Judging by the Twitter account,
Echo JS was launched on December 1st, so hopefully posts will increase
in regularity rather than petering out.


I'm not sure what to make of
brid.js (License: MIT, Demo: brid.js demo). It's a small Lisp implementation that uses JSON instead of S-expressions. On
one hand, it's a fun and interesting project, and on the other it seems
like affront against nature.

This is a Hello World example in brid.js:

["println", ["quote", "hello world"]]

Adding numbers looks closer to Lisp:

["+", 1, 1]
// Lisp: (+ 1 1)

Lisp's parenthesized syntax is analogous to the JSON representation, but
the quoting required to create valid JSON is a little bit hard to get
the hang of.

If you're interested in parsing in JavaScript, then you might enjoy
looking at the source. We've covered
Jison on DailyJS before, but context-free grammar isn't the only way to build parsers, and hand-coded
parsers like this are just as useful to learn from.


ql.io (GitHub: ql-io / ql.io, License: Apache 2.0) from eBay
is a "declarative, evented, data-retrieval and aggregation gateway for
HTTP APIs". It has a DSL inspired by JSON and SQL for declaring API
calls and their interdependencies.

The code itself is built on Node, and is comprised of several packages:

  • ql.io-engine: This is the core ql.io engine
  • ql.io-ecv: Checks servers are responding with JSON
  • ql.io-mon: Statistics on the ql.io runtime
  • ql.io-uri-template: A small URI template processor
  • ql.io-app: An app template for building sites using ql.io
  • ql.io-compiler: A PEG.js-based parser with a compiler (ql.peg contains the main grammar)
  • ql.io-console: Provides the HTTP interface for ql.io
  • ql.io-mutable-uri A utility for manipulating URIs

This is a diverse and complicated project, employing some interesting
techniques. I'm particularly intrigued by the use of PEGs (parsing
expression grammar) over context-free grammar, as Jison seems like the
easiest way to write parsers in JavaScript at the moment.
PEG.js (GitHub: dmajda / pegjs, npm: pegjs) is available for
Node and browsers.

Announcing ql.io at the
eBay Tech Blog has more details on the design and architecture of the