We are ecstatic to announce the arrival of our newest product: the X2 Framework for Node.js! Designed and developed in-house by our VP of R&D, Lev Gimelfarb, X2 is a collection of modules published with NPM and designed to provide a complete toolset for creating back-end applications that expose RESTful APIs and are backed with a SQL database.
X2 – which we also refer to as “x2node” – comes packed with many modules crucial to developing applications today: persistent resources, basic RESTful APIs, SQL database operations, record validators, and JSON pointers, among others.
I asked the Lev a few questions about his latest creation…
Why did you see the need for this new framework? What need does it fill that other frameworks do not?
Lev Gimelfarb: Since Node.js gained completely justified popularity as a platform for creating back-end applications, particularly web-services, the eco-system of modules and frameworks for it grew unprecedentedly vast and poorly organized. Separating the wheat from the chaff in the world of modules for Node.js is a challenging task, especially for newcomers to the platform. Frameworks like Express and StrongLoop have emerged as the “gold standard” for implementing web-services with Node.js. However, if we look at Express, its developers call it a lightweight, minimalistic framework. The issue with that is when you create a full-featured web-service application ready to be exposed on the Internet, you end up adding dozens of other modules to the application that extend the framework – you find yourself in the same situation of introducing numerous dependencies and figuring out what modules to use and how to use them. What’s the value of a framework being “lightweight” if the end application built on it ends up being far from “lightweight”? The goal of developing x2node was to provide a single environment for creating applications that have all the features expected from a production-ready web-service, straight out-of-the-box, and allow the developer to completely focus on solving the specific business task instead of getting mired in the technology. In addition to that, the framework contains certain solutions, such as its SQL database operations module, that does not really have analogues.
Are there types of applications for which x2node is particularly well-suited or optimized?
LG: X2 was designed as a toolset for creating back-end applications that expose RESTful APIs and are backed with a SQL database. However, that is not the only way to use the framework. It is comprised of several modules that can be used on their own. For example, the same SQL database operations module mentioned earlier can be used by an application based on the Express framework and provide access to a SQL database in a way that is as easy as a NoSQL database. Similarly, many other modules included in the x2node framework can be used separately.
As the open source community begins to play with and use X2, what sorts of community contributions and extensions would you like to see?
LG: There are several extension points in the framework where additional modules can be implemented. Currently, the database operations module supports MySQL (and compatible databases) and PostgreSQL. Drivers for other database engines can be developed. The HTTP authentication modules currently include support for Basic and Bearer (OAuth 2.0) schemes. Other schemes could be added in the future. Collections of basic web-service endpoint handlers can be developed (the framework currently includes one such collection in the x2node-ws-resources module). It’s hard to tell where it will lead, the framework is only on the beginning of its public path. We’ll see!
We are really proud of what Lev has achieved with X2 – and we hope you are too! For those of you who want to learn more about the new framework, there will be a TechTalk held at Boyle Software’s HQ in New York City in the coming weeks. Please send an email to firstname.lastname@example.org for more information and to inquire about attendance!