cederom commented on code in PR #16665: URL: https://github.com/apache/nuttx/pull/16665#discussion_r2185428343
########## Documentation/applications/examples/xedge/index.rst: ########## @@ -0,0 +1,114 @@ +``Xedge`` a lightweight Lua-based web framework for building secure, real-time IoT applications +================================================================================================ + +`Xedge <https://realtimelogic.com/products/xedge/>`_ is a robust IoT and web framework that is designed for microcontrollers. It is based on the industrial-grade Barracuda Application Server, designed for seamless OEM integration. Xedge accelerates embedded firmware development by providing a flexible, Lua-based environment and a full stack of industrial-strength protocols, including: + +- OPC UA +- Modbus +- MQTT +- SMQ +- WebSockets +- HTTP/HTTPS + +This Xedge port for NuttX comes pre-configured and requires: + +- TCP/IP v4 and v6 support +- File System support +- 2 MB RAM allocated statically in ``xedge/xedge_main.c`` + +.. note:: + These instructions set up Xedge in **development mode**. Xedge supports many configuration options that differ between development and production builds. For production settings and optimization, refer to the general Xedge build instructions (details below). + + +Why Use Lua and Xedge in Embedded Systems +------------------------------------------ + +Great Lua developers don't treat it as a "better C"; they treat it as a complement. Lua is an extension language, which means it's designed to work alongside C, not replace it. Smart embedded programmers use C for performance-critical, low-level code and Lua for high-level business logic, such as processing sensor data and managing secure cloud connectivity. + +Writing embedded business logic purely in C often means hundreds of lines of boilerplate code to manage memory, handle complex APIs, and handle errors. Lua, especially when paired with a framework like Xedge, lifts that burden. It provides high-level libraries and modules out of the box for protocols, networking, file systems, and more. + +This shift doesn't just make development easier; it makes it faster. What used to take weeks in C can now be done in days. Lua's simplicity encourages rapid prototyping and quick iteration, which is essential in modern IoT and embedded development, where both time-to-market and security are critical. For a conceptual overview of why this hybrid development model is so powerful, check out the tutorial `Why Smart C Coders Love Lua <https://realtimelogic.com/articles/Using-Lua-for-Embedded-Development-vs-Traditional-C-Code>`_. + +.. figure:: https://realtimelogic.com/blogmedia/lots-of-embedded-c-code-cartoon-600.jpg + :align: center + :alt: Too much C code + + +Getting Started +--------------- + +To compile Xedge for NuttX, follow these steps: + +1. **Configure NuttX for Xedge.** + + Navigate to the NuttX top-level directory and start the configuration tool: Review Comment: @JorgeGzm does these steps need to be performed on `qemu-armv8a:xedge` board or these instructions are for any generic target while `./tools/configure.sh qemu-armv8a:xedge` will build the image with example application already included and all necessary features set? Maybe these two scenarios can be outlined for folks that just want to quickly try out the xedge? :-) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org