Preface
The current FalconAS / NLAP updates (version 0.3) target two core areas:
Microcontroller-Optimized HTTP/1.1: A clean, secure library tailored for embedded environments.NLAP Draft & Schemas: Next Level Application Protocol specifications implementing a 100% non-blocking, scalable client-handling approach forTCPSockets (compared toHTTP/2.0andHTTP/3.0).
Important
The implementation has been simplified compared to version 0.1 and version 0.2. This overview reflects the code that
is currently present in src and lib/http.
The current implementation status is as following:
HTTP/1.0 Library: Developed a robust HTTP/1.0 library containing HTTPParser and HTTPMessageGenerator. This library has been successfully tested on an ESP32-S3 microcontroller.Client Handling / Data Processing: Optimized receiving and result-sending functionality (see ESP32-S3 code for reference). This optimized client data handling serves as the boilerplate for all upcoming XML-based NLAP sub-features.Upcoming Milestones: Development of a concurrent, multi-processing, and 100% non-blocking NLAP client / server library is underway. Furthermore, the data encryption process is engineered and scheduled for implementation.
Logical Components
Configuration
JSON configuration loading and transformation into C++ runtime objects.
Main::Server
The top-level runtime that initializes the process, maps static filesystem data, sets up the listening socket, and drives the main poll loop.
Main::ClientHandler
The epoll-based client connection manager. It owns the active client map, reusable receive buffers,
and delegates socket reads to Client objects.
Main::StaticFSHandler
Static filesystem indexing is provided by the Filesystem class and initialized through the
configuration layer at server startup.
ASProcessHandler
Backend process lifecycle hooks and interpreter-count discovery. The public interface for backend child processes still exists, while the current source keeps the former worker-fork implementation as scaffolding during the runtime simplification.
HTTPLib::HTTPParser
Incremental HTTP/1.1 request parsing for GET and POST requests, including header parsing, URL parameter extraction, and partial POST-body handling.
HTTPLib::HTTPMessageGenerator
HTTP response message generation implemented by the HTTPGenerator class. It builds the response
status line, headers, body metadata, and incremental send state.
SHMVector
src/SHMVector.hpp provides a shared-memory-friendly vector implementation with contiguous
segment-based storage and atomic spinlock synchronization.
Runtime Layout
The current runtime is simpler than the older documentation variants:
Server::setupSharedMemory()is currently a placeholder hook.Clientinherits fromHTTPParser, so request parsing happens per connection.Static filesystem data is mapped up front via
Configuration::mapStaticFSData().The older dedicated result-processing pipeline is no longer part of the active documentation set.
ASProcessHandlerstill exposes shared-memory pointer types and lifecycle methods, but the active source tree focuses on the server loop, client handling, HTTPLib, andSHMVector.