Skip to content
@Tekenlight

Tekenlight

evlua

Designed to be an open source, cross platform lua runtime environment for construction of scalable web applications

Goals

  1. IO event driven (async) processing
  2. lua (4GL) for development
  3. Multi threaded, with co-operative multitasking (switch task upon IO event)
  4. Usage of co-routines to achieve flowing code, i.e. no need for callbacks or promises

Inspired by

Node.js, golang

Sample implementation of a simple REST API

Sample implementation of a simple CRUD FUNCTIONALITY

Modules

alt text

Platform for runnning of lua code in asynchronous and event driven manner

This is the underlying CORE of the evlua framework. It is a multi-threaded C platform that manages TCP sockets, TLS encryptio/decryption event handling among other things.

A library written in C/C++, to facilitate access capabilities to evpoco.

  • Event driven file io
  • sync artifacts
  • lockfree datastructures
  • Thread pool
  • Generic utilities

XSD schema processor for lua, the library has the following capabilities

  • Command line utility for parsing of XSD files and compilation of XSD grammar to lua
  • Lua class for parsing of XML / JSON data and generation of corresponding lua objects. Any deviations from grammar (as specified in XSD) are caught at the time of parsing
  • Lua class for generation of XML / JSON data from lua tables Any deviations from grammar (as specified in XSD) are caught at the time of generation

Framework for calling C function and manipulating C types from lua

Allows calling external C functions and using C data structures from pure Lua code.

The FFI library largely obviates the need to write tedious manual Lua/C bindings in C. No need to learn a separate binding language — it parses plain C declarations.

Framework which provides a layer of stubs and utilities to facilitate classes implimented in lua be exposed as REST API. It is a lua library, takes care of marshalling/unmarshalling database connection management, authorization, before the controlled is passed on to the application lua classes.

It also provides utility classes like SMTP, HTTP, JWT, ORM among others for implementation of those features in lua applications.

Dependencies

  • Customised date: Lua Date and Time module for Lua 5.x.
  • Customised lbc-101; This is an arbitrary precision library for Lua
  • Customised libxml2; Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform)
  • luaposix; This is a POSIX binding for Lua 5.1, 5.2, 5.3 and 5.4;
  • Penlight: Penlight brings together a set of generally useful pure Lua modules, focusing on input data handling (such as reading configuration files), functional programming (such as map, reduce, placeholder expressions, etc)
  • lua-cjson: The Lua CJSON module provides JSON support for Lua.

Roadmap

  • Code refactor
    • Refactor HTTP client (service_utils)
    • Refactor REST/controller (service_utils)
    • Refactor evluaserver and evlua
    • Refactor evpoco
  • Support for HTTP connections via proxy server
  • Mysql client library
  • MongoDB client library
  • SQLite client library
  • Constraints in table specs (ORM)
  • Caching of data in TAO
  • Support for HTTP2
  • Build and deploy of various packages along with their dependencies
    • Merge dependent libraries to a 2 major ones, evpoco and service_utils
    • evpoco: Meger libev, lua, efio, resdis-client and http-parser within evpoco
    • lua_schema: Merge necessary parts of efio, libxml2 into the same library
    • service_utils: Merge lua-uri within the library
    • Installation of service_utils should install evpoco as well
  • Packaging of various modules to facilitate easy distribution and deployment.
  • Distribution of evlua for download and usage

Pinned Loading

  1. efio efio Public

    Event driven file IO module

    C 4

  2. evpoco evpoco Public

    A platform to develop Server side code in lua

    C 5 3

  3. lua_schema lua_schema Public

    Library to handle xsd schema in lua

    Lua 3 2

  4. service_utils service_utils Public

    Lua 4 3

  5. luaffifb luaffifb Public

    Standalone FFI library for calling C functions from lua. Compatible with the luajit FFI interface.

    C 7 1

  6. libxml2 libxml2 Public

    Forked from GNOME/libxml2

    Fork from Read-only mirror of https://gitlab.gnome.org/GNOME/libxml2

    C

Repositories

Showing 10 of 86 repositories
  • Tekenlight/service_utils’s past year of commit activity
    Lua 4 3 0 0 Updated Sep 28, 2024
  • lua_schema Public

    Library to handle xsd schema in lua

    Tekenlight/lua_schema’s past year of commit activity
    Lua 3 2 0 0 Updated Sep 27, 2024
  • efio Public

    Event driven file IO module

    Tekenlight/efio’s past year of commit activity
    C 4 BSD-2-Clause 0 0 0 Updated Sep 22, 2024
  • lua-resty-template Public Forked from bungle/lua-resty-template

    Templating Engine (HTML) for Lua and OpenResty.

    Tekenlight/lua-resty-template’s past year of commit activity
    Lua 0 BSD-3-Clause 259 0 0 Updated Sep 4, 2024
  • evpoco Public

    A platform to develop Server side code in lua

    Tekenlight/evpoco’s past year of commit activity
    C 5 3 0 0 Updated Aug 18, 2024
  • evlua_build Public

    Repo containing build and deployment infra for evlua platform

    Tekenlight/evlua_build’s past year of commit activity
    Shell 0 MIT 0 0 0 Updated Aug 12, 2024
  • lunatic-python Public Forked from bastibe/lunatic-python

    A two-way bridge between Python and Lua

    Tekenlight/lunatic-python’s past year of commit activity
    C 0 LGPL-2.1 83 0 0 Updated Jul 19, 2024
  • poco Public Forked from pocoproject/poco

    The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.

    Tekenlight/poco’s past year of commit activity
    C 2 2,206 0 0 Updated Jul 5, 2024
  • lua-cjson Public Forked from mpx/lua-cjson

    Lua CJSON is a fast JSON encoding/parsing module for Lua

    Tekenlight/lua-cjson’s past year of commit activity
    C 0 MIT 480 0 0 Updated Jul 3, 2024
  • .github Public

    Files at repository level

    Tekenlight/.github’s past year of commit activity
    0 1 0 0 Updated Jul 3, 2024

Top languages

Loading…

Most used topics

Loading…