Guide to Server Integration and Configuration

This guide is for OEM developers integrating the Barracuda Web Server (BWS) or Barracuda App Server (BAS) into a native program or firmware image. It explains the available integration shapes and points to the native assembly tutorial. If you first need to choose between native C/C++, Lua, Mako Server, and Xedge, start with Web Development with BAS.

Typical Uses of the Barracuda Servers

The Barracuda App Server and the Barracuda Web Server are C source code libraries specifically designed to be embedded into another computer program. These C source code libraries are meant to be linked into, and become an integral part of, the program being developed.

Typical uses of the Barracuda App Server & Barracuda Web Server include:

BWS provides the native HTTP/HTTPS server foundation. BAS adds the Lua runtime, Lua Server Pages (LSP), and optional client and server protocols. Both libraries use the Virtual File System (VFS) for URL routing.

Porting Barracuda to an Embedded System

Supported environments (pre-ported):

The source distribution includes or has been used with multiple high-level operating systems (HLOS), real-time operating systems (RTOS), TCP/IP stacks, and processor families. The exact ports supplied with a release can change. Check the distribution's src/arch directory and build documentation for the current list before selecting a target.

Porting:

A new RTOS port must provide the threading, synchronization, timing, socket-dispatcher, TCP/IP, and optional file-system interfaces required by the selected build. Start from the closest supplied port rather than assuming a host-platform example can be used unchanged.

Memory:

Memory use depends on the compiler, architecture, enabled protocols, TLS options, connection limits, buffers, Lua modules, application code, and content packaging. BWS is the smaller starting point when the product requires only native C/C++ web-server features. BAS requires additional code and runtime memory for Lua and the enabled modules. Measure the release build with the target toolchain and exercise the expected concurrent workload before setting the product memory budget.

CPU:

BAS and BWS target 32-bit and 64-bit systems. Confirm compiler, byte-order, alignment, threading, and network-stack requirements against the selected port and release.

Ready-to-Run Reference Builds for the Barracuda App Server

BAS and BWS build overview