Home

Awesome

<a href="https://scan.coverity.com/projects/itpc-lapps"> <img alt="Coverity Scan Build Status" src="https://scan.coverity.com/projects/14982/badge.svg"/> </a>

LAppS - Lua Application Server

This is an attempt to provide very easy to use Lua Application Server working over WebSockets protocol (RFC 6455). LAppS is an application server for micro-services architecture. It is build to be highly scalable vertically. The docker cloud infrastructure (kubernetes or swarm) shall be used for horizontal scaling. LAppS has most scallable WebSockets server out there.

LAppS is the same thing to WebSockets as the Apache or Nginx are to HTTP. LAppS does not supports HTTP (though it supports HTTP Upgrade GET request as per RFC 6455). The only supported scripting language so far is the Lua.

RFC 6455 is fully implemented. See the Conformance section.

RFC 7692 (compression extensions) is not implemented due to concerns about BREACH attacks. It is possible to have per-message compression on the LAppS protocol level without being affected by BREACH attacks.

LAppS is an easy way to develop low-latency web applications. Please see LAppS wiki and the examples on how to build your own applications.

Please see LAppS wiki on how to build and run LAppS from sources.

Latest stable release

0.9.5 04.01.2021 (with wolfssl-4.6.0) 0.9.4 01.01.2021 (with wolfssl-4.5.0)

Binaries

Features

Services

Services are the Lua Applications. Each service may run parallel copies of itself (instances) to achieve maximum performance. The application have a choice of two protocols for clinet-server communications: RAW and LAppS.

RAW protocol behaviour is not specified and is not affected by LAppS (excluding control frames, those are never sent to the Lua Applications). It is for application to define how to handle inbound requests and how to react on them.

An optional LAppS protocol defines a framework similar to JSON-RPC, with following key differences:

Conformance (and regression test results)

Autobahn TestSuite Results. No extensions are implemented yet

Further development

Roadmap will be ready soon. Next releases will include:

Dependencies

Prerequisites