Technology Stack

As a team of people using technology to make DLT products, it’s essential to be unambiguous about the technology/tools we use, so that everyone is clear what we all need to learn/use to make product(s) that are functional, fast, beautiful, usable and reliable!

Mainsail is written in TypeScript , and it has been using Lerna to manage the development and publication of its packages and uses Node.js as execution environment.

Development tools

The following development tools need to be installed on your machine to develop an application using Mainsail:

  • Hapi.js - A rich web framework for building applications and services. A base for our public REST API.
  • InversifyJS - A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.
  • Lerna.js - A tool for managing JavaScript projects with multiple packages.
  • NodeJS - As Mainsail is written exclusively in NodeJS, the server-side framework for JavaScript, installing Node is a necessity for core development.
  • LMDB - our ledger database is LMDB. LMDB is the fastes and most efficient key-value database for storage and retrieval of structured JS data.
  • PostgreSQL - our API database is Postgres. Postgres is the most “mature” Open Source Relational Database. It’s 100% Free (including all “advanced” features).
  • TypeORM - ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
  • TypeScript - A language for application-scale of JavaScript. TypeScript adds optional types to JavaScript that support tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript.

Operating System

While we have a strong preference for Linux (e.g. Ubuntu or CentOS), however we know that both Node.js and Postgres run on almost any environment including Microsoft Windows Desktop & Server.

Information

All production and support tools are developed for Linux operating systems. We do not support Windows environment operating system in production. However it is still possible to develop your applications on a windows box.

Last updated 8 months ago
Edit Page
Share: