The Barracuda App Server (BAS) can act as a network server, a network client, or both. Use this page to select a communication model and find the corresponding BAS API or tutorial. Protocol availability depends on the BAS build and licensed components.
| Need | Protocol or interface | BAS component and next step |
|---|---|---|
| Request-response APIs for devices, gateways, test tools, or cloud services | HTTP or HTTPS with REST-style resources | Use the BAS server APIs or Lua HTTP(S) client. See the REST tutorials for C and C++ or Lua. |
| Real-time browser updates, device control, and publish/subscribe messaging | Simple Message Queue (SMQ) | BAS includes the SMQ broker and client interfaces. Start with the SMQ overview, then review SMQ security. |
| Connect a device to an MQTT broker | MQTT | Use the Lua MQTT client or C/C++ MQTT client. BAS does not replace the external MQTT broker in this model. |
| Represent industrial edge data through MQTT | MQTT Sparkplug | Use the separate Lua Sparkplug Edge of Network example and library. |
| Structured industrial data and services | OPC Unified Architecture (OPC UA) | The OPC UA client and server stack is a separate product and is not included in a standard BAS delivery. See the OPC UA API documentation. Precompiled Mako Server packages may include it. |
| Communicate with industrial controllers and field devices | Modbus TCP | Use the Lua Modbus client. |
| Bidirectional messages over a persistent connection | WebSockets | Use the Lua WebSocket client and server or the C/C++ WebSocket server. For browser choices, see Browser-to-Server Communication. |
| Send email notifications | Simple Mail Transfer Protocol (SMTP) | Use the Lua SMTP client. |
| Obtain and renew TLS certificates | Automatic Certificate Management Environment (ACME) | Use the ACME module. ACME manages certificates; it is not an application-data protocol. |
Whichever protocol you select, define authentication, authorization, TLS, credential provisioning, input limits, and update procedures as part of the system design.