Luaflow | Create entire web apps using Lua (ALPHA)

My friend is working on an open sourced web framework that allows for the development of websites using Lua, html, CSS, JavaScript, etc… Seeing that Roblox uses Lua, I can think of many applications Roblox devs can use this framework for. It feels neccesary to add that in its current state, it is not friendly to beginners and needs some love to get going; personally I am in love with the idea of using Lua for websites (Web Developer by trade, game developer by heart) so I felt the need to share this gem with you all to maybe get the ball rolling. Contributing is open, and even I am planning on contributing.

Possible uses: Creating a server admin interface for your game so you manage player data from a web gui? (What I’m working on currently)

Edit: Sincere apologies to all, I avoided uploading documentation because there is a readme file on the github page. However, I will post his readme on how to use it:

![Logo|315x150](upload://azNw9FOXWqq5Klzie0Nkfh8SD3o.png)

Luaflow

A MVC (Model-View-Controller) lua framework for apache2 web servers.
Report bug · Request feature

Table of contents

About

Luaflow is a web framework for Lua that revolves around an object orientated building process designed for agile web development. Currently I’m using apache2’s built in module ‘mod_lua’ but there are plans to bring Luaflow to nginx and other webservers. mod_lua allows the server to parse lua files. You can enable this module by adding LoadModule lua_module modules/mod_lua.so to your httpd.conf file for apache2.

  • XAMPP httpd.conf: xampp/apache/conf/httpd.conf
  • Ubuntu: idk
  • anything else: idk

For performance add this to the file as well

AddHandler lua-script .lua
LuaScope thread
LuaCodeCache stat

Status

Currnetly a bare bones functionality is implmented.

Get Started

To get started locate your httpd.conf file for apache, and add LoadModule lua_module modules/mod_lua.so. I added this text where the other LoadModule’s were located. Clone the entire repo and go into luaflow/config.lua and change the ‘src_directory’ value to the absolute path to the webpages’ directory (where .htaccess is), also go into luaflow/router.lua and change package.path = package.path .. ';C:/xampp/htdocs/luaflow/?.lua' to package.path = package.path .. ';absolute/path/that/is/in/config/?.lua'. A full documentation guide is coming soon.

Documentation

Documentation revolving Luaflow.

Basic

All Luaflow apps consist of two parts: views, and templates. A view is a page within your app, and the initial index page of your app will be App.lua.

Each view is a subclass of Luaflow’s core class (luaflow/core.lua) and consists of 3 main variables: ‘core.variables’, ‘core.head’, ‘core.style’. All the variables that are apart of your view will be held in the variables table, the views’ html head contents are set by the head table (title, stylesheets, or etc/other), and all extra styles will be held as a string within the style variable.

The core class will build and render the string returned by the view’s ‘render’ method. The render method will replace all varibles nested within double curly brackets ( ex. {{variable_name}} ) with the variables value.

A template is much like a view, except it can be rendered within views many seperate times.

Todo

Here is what’s on my todo list:


- Websocket state managment
- Database class
- Custom routing

Bugs and feature requests

n/a

Contributing

Contributing is open.

Creators

Creator 1

Copyright and license

Code and documentation copyright 2011-2018 the authors. Code released under the MIT License.

Enjoy :smiley:

https://github.com/davidn000/luaflow

9 Likes

You have not explained how to use this, nor does it look completed from viewing the source on GitHub. Please update your post to include more information.

2 Likes

nice
but how we download that app

This seems nice

So what ur saying is, this is a vesratile resource that can be used in many ways
Thanks for posting this :+1:

and how we use it
cause you don’t said how to use

Yes it’s not completed, as with many open source projects, its on-going and he has expressed how he would love to get some help developing this. Thank you for your suggestion, for now I have uploaded his readme until I write out my guide.

1 Like

So far the framework only supports Apache2 servers (fear not as this is the most popular server used on the web). You would clone the repo, either using GIT CLI or by pressing the green button that says “Code” and downloading as a zip. You would place the file into your web root, and follow the instructions I posted. If you are an absolute beginner let me know and I would be happy to create a video showing you how to use it.

1 Like

As per the rules:

image
image

As it seems like it only runs on Apache2 web servers, I am not sure how this relates to Roblox. Simply writing a library in Lua doesn’t immediately make it compatible with Roblox.

Could you perhaps explain this?

Well how I see this being of use to roblox developers is expanding the realm of roblox to use the versatility of the web. A roblox developer could for example code an admin page their game to manage player data, ban players, change stats etc…, or a social community for their game without the need to hire a game developer.

4 Likes

I think what he’s getting at is that this project’s affiliation with empowering Lua development does not supplement Roblox development in a way that is tangible or relevant.

  • It is not Finished
  • It doesn’t utilize the Roblox platform at all
  • If the context of Roblox was separated from this conversation, this project would be exactly as it is now in function, form, and utilization!

Resource contribution is great, but the forum customs are the forum customs.

1 Like

No joke, a couple days ago I was thinking to myself, is there a way to write websites/web apps with Lua? Since I am fluent with web development and wanted something new.

This has potential, ngl. However why post this when the tutorial isnt done yet and no clear installation proccess, atleast wait till the tutorial.

(I’m not lying when I said that I wished this existed, the wizard’s answered by wish)

You can learn another language for web development. Like python, flask, Name any.

Flask is not a language but a library for Python web servers.

2 Likes

This module is just like react/nextjs.
Using this will make us use 4 different languages

Html,css,js,lua and what if we want to use js libraries?
This lua framework supports backend I believe by looking at the code.

If we are using backend then how can we fetch data from an api?

And its uses CSS and HTML so how it matches the title “Create entire web apps using Lua”?

Im aware however I know like 20 languages and using the same format as lua would help.