FullStack London

00Architecture, Conferences, Foxx, General, nodejsTags:

I recently had the chance to visit FullStack London, a well organized conference. Thanks a lot to Skills Matter. FullStack was opened by Douglas Crockford about “The Better Parts” of ES6. I cannot wait to start using them. Douglas was followed by Isaac Schlueter talking about open source in companies. Although this talk was not technical I learned a lot and it was very inspiring.

The remainder of the conference was all about using JavaScript mostly on server-side using Node.js or in robotics. As robotics is not my kind of topic I visited the talks about server-side JS. They confirmed my impression where JS development is heading to: Microservices. More info

Handling Binary Data in Foxx

00Foxx, JavascriptTags:

Handling binary data in JavaScript applications is a bit tricky because JavaScript does not provide a data type for binary data. This post explains how to use binary data in JavaScript actions written using ArangoDB’s Foxx.

String vs. binary data

Internally, JavaScript strings are sequences of 16 bit integer values. Furthermore, the ECMAScript standard requires that a JavaScript implementation should interpret characters in conformance with the Unicode standard, using either UCS-2 or UTF-16 encoding.

While this is fine for handling natural language, it becomes problematic when trying to work with arbitrary binary data. Binary data cannot be used safely in a JavaScript string because it may not be valid UTF-16 data.

Read more on Jan’s Blog

If you want to continue with other JavaScript related resources, you should start with ArangoDB NoSQL and JavaScript.

Cheerio, Node and Coffee-Script

02Foxx, General, JavascriptTags: ,

Foxx’ main purpose is to create a beautiful API for your AngularJS, EmberJS or Backbone.js front-end. However, sometimes you want to do more. We, for example, needed to parse some HTML files. ArangoDB is capable of using some Node.js modules, but unfortunately Cheerio was not one of those. One problem was that we did not support loading of JSON data modules. So, this was a good excuse to rewrite the module loader in ArangoDB to make it even more Node.js-friendly.

With those improvements, that are currently available in ArangoDB’s devel branch. You can now also “require” a JSON data file. These files must have a filename ending with “.json”. If the filename ends with “.coffee” it is treated as coffee-script file and automatically compiled into JavaScript.

A Foxx app can now contain its own “node_modules” directory to include Node modules which it requires. This makes it much easier to deploy a Foxx app.

Foxx Hackathon on July 26th – 28th

00GeneralTags: ,

While the ArangoDB team is finishing the most wanted replication feature, there is another baby which needs our attention: Foxx.

Lucas, Jan, Frank and Michael have spread the word about Foxx and collected feedback from the community. Now it’s time for the next step: we will have our second FOXX hackathon on July 26th-28th in Cologne – and you are invited to join the party :-).

A quick reminder: FOXX is a nice, little Javascript application framework on top of ArangoDB. Using Foxx, the frontend application speaks through Foxx with ArangoDB. No Node.Js/Rails/Symfony/whatever backend is required. This is especially useful for creating APIs in no time in Single Page Applications (SPAs).

Who should attend?

  • You are a developer and you are interested in another approach to build frontend driven apps.
  • You have something in mind you would like to build with FOXX or you want to help us making FOXX better. Some topics we have in mind: authentication, ease of use, deploying apps.
  • People from the community told us that they want to try: Using ClojureScript’s new lightweight processes (not bound to threads) together with FOXX
  • You want to meet like-minded people and have fun
  • You can’t resist a challenge.
  • You don’t own an ArangoDB/Foxx T-Shirt yet. 😉

Some Javascript experience is required, but you don’t have to be an expert at all! More info

ArangoDB 1.3.alpha1 and the first Foxx Screencast


Starting today you can install the first Alpha of the upcoming release of ArangoDB version 1.3. Some of the new features are:

* ArangoDB Foxx: A lightweight way to define APIs directly on top of ArangoDB
* Traversals: Define traversals to explore your graphs stored in ArangoDB
* A new and improved Frontend: Featuring a new design and various improvements
* And more: Multi-Collection transaction support, user defined functions in AQL, more builtin AQL functions and AQL improvements, bug-fixes…

ArangoDB Foxx: The first screencast If you want to get a first look at ArangoDB Foxx, you can now see our first screencast. Lucas talks about the motivation and goals of Foxx and introduces you to the basics. A second screencast will follow with more advanced techniques like our Repositories and Models:

How to install it?

  • If you are on a Mac and using Homebrew, you can install it now via brew install --devel arangodb.
  • If you are compiling ArangoDB by yourself, checkout the branch 1.3 from github and compile it.
  • if you are using Linux, we have create package for the usual distributions. You can download them from here.

Foxx – a lightweight Javascript application framework for ArangoDB


Edit: From version 1.4 the ArangoDB user manual available online also includes the documentation for FOXX. For the last months we have been working on Foxx – a brand new Javascript framework on top of the upcoming version of the free and open source NoSQL database ArangoDB. Foxx allows you to build APIs directly on top of the database and therefore skip the middleman (Rails, Django, Symfony or whatever your favorite web framework is). Foxx is designed with simplicity and the specific use case of modern client-side MVC frameworks in mind. There are a couple of very interesting scenarios for Foxx: * You want to build a Single Page Web Application: most of the business logic is in the Javascript frontend. The backend’s most important task is to persist the data and send data to the client plus a bit of auth, modify, validate logic.  In this case ArangoDB plus a Foxx application is all you need as a backend. * Another use case is a mobile app either native or HTML5. Again you’ll have most of the logic already in the frontend (the app in this case). With Foxx you can create your API very easily. And as you don’t have a large full-size MVC stack included, your backend will be very, very fast. You might want to consider Foxx even as lightweig

ht, easy-to-learn alternative to


More info

Do you like ArangoDB?
icon-githubStar this project on GitHub.