Introduction

Welcome to the comprehensive documentation for the Barracuda Web Server (BWS) and the Barracuda Application Server (BAS). Whether you prefer working with the low-level C/C++ API or the high-level Lua Scripting Language API, this documentation covers everything. If you're working on an embedded system with limited memory, you can exclusively utilize the Web Server and the C and/or C++ API. However, throughout the documentation, many examples focus on the Lua API, which is more straightforward than the C API. Even if you decide not to use the LSP plugin, we strongly recommend reading the introductory Lua examples. These examples will introduce you to the Virtual File System (VFS), an essential concept to understand in Barracuda.

Are you new to Lua? No worries! We have an online Lua tutorial available to help you get started. We also provide a plethora of Lua examples on GitHub.

Typical Uses of the Barracuda Servers

The Barracuda App Server and the Barracuda Web Server are C source code libraries specifically designed for being embedded into another computer program. The ANSI C89 compatible source code libraries are designed to be linked into and be an integral component of the computer program being designed.

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

Keep in mind that the Barracuda App Server is a multi-protocol stack and toolkit that includes a powerful integrated scripting engine and support for a wide range of client/server protocols. This makes it a versatile platform for building custom applications and services.

Porting Barracuda to an Embedded System

Supported environments (pre-ported):
The Server has been ported to many embedded operating systems including: VxWorks, QNX, Zephyr, FreeRTOS+TCP or lwIP, Embedded Linux, INTEGRITY, Windows & Win CE, ThreadX, NuttX, Nucleus RTOS, embOS, RTXC, SMX, MQX, RTOS-32, Mac, and UNIX/POSIX.

Porting:
The Barracuda App/Web Servers can be ported to any RTOS powered embedded device.

Memory:

CPU:
The Barracuda App/Web Server runs on several microprocessors including, but not limited to: the X86 family, the PowerPC family, the ColdFire family, MIPS, and the ARM family. The server is designed to run on 32 and 64 bit microprocessors and is not suitable for 8 or 16 bit microprocessors.