I'm working with ArangoDB since 2 years now. I was looking for a strong noSQL database with a great performances with joins feature. After some project within mongoDB I decided to migrate to ArangoDB for several reasons.
I discovered Openresty two years ago during tech talk in Hong Kong. The developer was so enthousiast ... and he was a Ruby developer just like me. It took me 1 year to finaly take times to play with it...
Openresty is a fork of Nginx including Lua. Lua is a small but robust language.
It use Lua co-routines so the code is not blocking. You keep writing your code like a procedural code... It will help you to keep a code easy to read and maintain.
Here a sample using moonscript language (which compile into plain lua code)
http = require "lapis.nginx.http"
class extends lapis.Application
"/": =>
-- a simple GET request
body, status_code, headers = http.simple "http://leafo.net"
-- a post request, data table is form encoded and content-type is set to
-- application/x-www-form-urlencoded
http.simple "http://leafo.net/", {
name: "leafo"
}
-- manual invocation of the above request
http.simple {
url: "http://leafo.net"
method: "POST"
headers: {
"content-type": "application/x-www-form-urlencoded"
}
body: {
name: "leafo"
}
}
Openresty world is finaly not that big. The only decent framework I found was Lapis (maybe not the only one -- but website and documentation was very clear).
It's very very fast and comes with some utilities. Of course we are far away from a Ruby on Rails framework but it's complete enough to build applications.
I worked on a project called foxxy. It was a RiotJS app for building CRUDs quickly for ArangoDB. I kept the same tool and added a Lapis app as frontend. Fasty was borned. Fasty is fast and easy to work with. I'll write some tutorials about how to create dynamic content, how to deal with a Foxx Restful API...