Imagine being able to utilize your legacy C and C++ code in modern web development environments. We bring this possibility within reach.

JavaScript and C/C++

Having the ability to access your C/C++ code from JavaScript preserves your investment in your legacy code and makes it accessible to current generation software developers. You get the unparalleled performance of C and C++ and the immense productivity benefit of JavaScript. The best of both worlds!

Getting JavaScript and C/C++ to work well together is a major undertaking. We solve this problem utilizing our proprietary, automated tool. This tool, years in development, along with our expertise and extensive experience, allow us to quickly and cost-effectively create a binding that exposes your C/C++ library APIs to JavaScript.

Contact inspiredware

Benefits for our Clients

Concern Help is Here!
Creating the necessary binding code from scratch requires a considerable resource and time commitment.
We create a rock-solid binding in a fraction of the time and cost it would take to ramp-up and do it in-house. 
Learning the enabling technology distracts your programming staff from your core business.
We take responsibility for the binding so you can remain focused on your business objectives. 
The enabling technology has a steep learning curve. There are numerous technical concerns to be addressed to get it right.
We focus solely on adapting existing C and C++ libraries for Node.js. We’re experts at it.
For large C and C++ libraries, the process of creating the necessary binding code is tedious and error-prone. 
We ensure consistent and verifiable results utilizing our automated tool. 
Changes in the C and C++ library must also be propagated to the binding.
We quickly regenerate and test the binding whenever the underlying C or C++ library changes.
The JavaScript API must be documented.
We extract existing documentation and present it in a form accessible and useful to JavaScript programmers.

JavaScript and Node.js 

JavaScript has been the most popular programming language since at least 2014. Used primarily for development in the web browser, in 2009 the Node.js platform made JavaScript also viable for desktop and server application development.

Despite what you might think, JavaScript is ideally suited for development of high-performance applications. JavaScript is inherently asynchronous and supports high-level programming paradigms including functions as first-class objects. JavaScript code is compiled into machine code at runtime making it even faster.

Node.js Development 

Applications for the Node.js platform are written in JavaScript. Node.js supports a modular architecture that encourages the development of complex applications by “wiring together” highly focused modules that are readily available online. The site npm.org hosts over a million of these modules. 

In nearly all cases, Node.js modules are written in JavaScript. However, the N-API technology built into Node.js supports the creation of Node.js modules written in C and C++. Known as “Node Native Modules,” these modules require the creation of an intermediary layer of code known as a “Binding” as shown: 

Automated Generation

The key to making C/C++ libraries available to JavaScript programmers is creating a Binding that acts as a “translation unit” between JavaScript and C/C++. A Binding is a set of JavaScript, C/C++, and assorted configuration files. As such, creating a Binding requires not only a deep understanding of the underlying Node.js technology, but also expertise in both JavaScript and C/C++.

Recognizing the significant investment required to create Node.js Bindings, inspiredware has developed a proprietary, patent-pending tool that automates the process of creating Node.js Bindings. Our tool parses the C/C++ library source code and documentation files and collects the information into a centralized knowledge-base. It then uses this information to automatically generate all of the necessary files comprising a functioning Node.js Binding. 

Learn More