with
Horizon + RethinkDB
by Zak Burki
16th Jun 2016
Official Drivers Available for :
Unofficial Drivers Available for many other Programming Languages. (Go, PHP, C#, Haskell, Clojure, Elixir etc.)
SQL:
ReQL:
r.table("posts")
.filter(function (post) {
return r.table("users")
.filter(function (user) {
return user("id").eq(post("authorId"))
}).count().gt(0)
})
SELECT * FROM users
WHERE
SELECT *
FROM posts
WHERE EXISTS
(SELECT * FROM users
WHERE posts.author_id
= users.id)
Horizon is a small lightweight JavaScript Layer written on-top of RethinkDB to give direct access to the DB via a set of APIs.
Well, in conjunction with changefeeds, you can write a real-time 'severless' application directly using JavaScript front-end web and mobile frameworks.
Horizon consists of 3 parts:
- Horizon CLI
- Horizon Client
- Horizon Server (middleware)
hz("airlines").fetch().subscribe(
result => console.log('Result:', result),
(err) => console.log(err),
() => {
console.log('Results fetched')
}
);
horizon.onReady().subscribe(() => console.log("Connected to Horizon server"))
horizon.onDisconnected().subscribe(() => console.log("Disconnected from Horizon server"))
horizon.connect();