Mako Application Server

Mako Server

As a compact application and web server, the Mako Server helps developers rapidly design secure IoT and web applications. The Mako Server provides an application server environment from which developers can design and implement complete, custom solutions. The Mako Web Server is ideal for embedded Linux systems.

Simplifies design of IoT and web applications

The Mako Server is a compact application server and web application platform with the following integrated plugins: Lua Server Pages, Tiny TLS engine, WebSocket Client & Server, High-Level Secure Socket API, Client HTTPS Library, WebDAV File Server, SMQ IoT protocol, MQTT Client, Modbus, SMTP Client, AJAX, JSON, Binary-JSON, XML-RPC, SOAP Web Services, and SQLite.

The Mako Web Server has been designed and optimized as a fast and compact web application server suitable for small and constrained systems

Mako Server can be used as the basis for a wide variety of web based applications, ranging from standard database driven business applications to custom hardware and IoT device management applications.

Mako Server really shines on small devices when compared to other web application frameworks. Mako Server is super compact, uses very little resources, and is very fast on small embedded devices and tiny online Virtual Private Servers.

Why Mako Server?

  • Small
  • Extremely Fast
  • Rich Developer API
  • Easy Deployment
  • IoT Ready


  • Optimized for embedded Linux systems and memory constrained Linux VPS
  • Easy installation/deployment of server (one small executable file)
  • Easy deployment of web applications which can be packaged as ZIP files
  • Super fast and small (great for resource constrained devices such as the Raspberry Pi)
  • Integrated database (no database connector configuration necessary)
  • HTML5 and WebSocket ready
  • Easy to use server side Lua API
  • Easily write advanced server side logic in the Lua scripting language and optionally write using C/C++
  • Server side Lua API can easily be extended for management of custom solutions (such as custom hardware)
  • Virtualized file system makes the mapping of URL's to database queries and other non physical resources very easy
  • Advanced security and authorization logic makes writing secure apps a breeze
  • Includes a scripting language that is easy to learn for beginners and, at the same time, enables hard core programmers to design advanced server side web applications

Integrated Secure Internet of Things (IoT) Protocol

The Mako Server includes an integrated secure Internet Of Things (IoT) protocol called SMQ. The following video shows how a device can be controlled from a web browser in real time. The Mako Server acts as a broker for the communication between the browser and the device.

How to setup your own secure IoT cloud server ESP8266 Arduino WiFi IoT Device to Cloud Setup

Lua Scripting Language

Why Lua?

  • Small
  • Fast
  • Easy to learn
  • Powerful

The Lua scripting language has many benefits and is easy to learn. You can read up on the basics of Lua in one day and you can start making LSP applications within a couple of days. You will have to learn the Lua scripting language and server side web development if you plan on writing your own Mako Server applications, although you do not have to write any low level C or C++ code. However, developers that have C/C++ experience can optionally extend the server with new functionality by loading additional C libraries at runtime.

Lua Logo

Lua Server Pages

Lua Server Pages (LSP) are based on the Lua scripting language and make developing web applications extremely fast, simple, safe, and fun. Notably, LSP isn't limited to the development of web applications, but can also be used to provide high-level socket APIs that make developing secure socket applications very easy. Getting started with LSP is especially easy if you have prior experience with similar application server scripting technologies (such as PHP or ASP).

Hello World LSP Example

<?lsp local message="Hello World" ?> <html> <body> <h1><?lsp=message?></h1> </body> </html>
The Mako Server consists of one executable file that includes all of the following four components:
  1. The Mako Server startup code
  2. The Barracuda Embedded Application Server library
  3. The SQLite database
  4. Lua Server Pages which enable Lua script code to access lower level C functionality

Figure 1: Mako Server running 3 Lua web applications

Mako Server Block Diagram

The Barracuda Embedded Application Server library includes the following components:

Fast Track your Learning

The Getting Started guide explains how to fast track your Mako Server and Lua Server Pages development.

The Mako Server and the Lua/LSP tutorials are optionally available as a Docker image. Docker is available for Windows, Mac, and Linux.

After installing Docker, run the following command in a console window:

docker run -i -p 80:80 -p 443:443 -p 23:23 --name lua-server-tutorial rtld/lua-server-tutorial

After running the command, use your browser and navigate to http://localhost.

To restart the tutorials, run the following command:

docker start -i -a lua-server-tutorial

Online Lua Tutorials

An online VPS running the tutorials is also available. You may use the online interactive tutorials by navigating to

Mako Server Benchmarking -- Speed Test

The Mako Server is extremely fast at dynamic content generation. We compared the Mako Server delivering dynamically generated Lua Server Pages to the Apache Server delivering static content. We were able to generate dynamic content much faster than Apache could deliver static content.

Two minute speed test on a generation 1 Raspberry Pi (700MHz ARMv6):

  • Apache: 26,624 static files
  • Mako Server: 45,577 dynamic pages
Benchmarking Apache and Mako Server

The benchmarking should have been performed with other dynamic content frameworks such as PHP, but we were unable to find any reliable benchmarking data. In any event, PHP is slower than static content when run in an Apache server.

The benchmarking was performed with FuguHub, which is another Barracuda Application Server derivative product. The Mako Server and FuguHub will provide the same benchmarking results since they are derived from the same product.

See the FuguHub benchmarking results for details.