igame3dbill / murgaLua

murgaLua is a Lua 5.1 implementation using FLTK for gui, includes SQLite,, tinyXML, lua filesystem, lzlib, copas, lua-iostring, luasocket, md5, luaLZO, random_MOD. Created by John Murga (R.I.P. May 13, 2020)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

murgaLua Version 0.6.4 - (0.6.6 I believe -Bill)
Copyright (C) 2006-8 John Murga

See file "LICENSE" for restrictions.

Notes
=====

Building murgaLua
-----------------

Several scripts can be found under "tools/misc", that are used when doing full
builds of murgaLua for the different platforms.

Cheers
JohnM

------------------------------------------------------------------------------------
From murgaLua.html in the help docs
Written by John Murga

Introduction

Why do we need yet another platform ?
murgaLua was born from a frustration with the size and licensing of some of the development tools I have been using. I am a Java developer by trade, but for my personal projects I wanted something that was better to deploy, something that :

Could provide nice GUI's, Networking, Databases & XML in a much smaller runtime (about 500k).
Would allow me to create rich applications easily (preferably with a GUI builder)
Must deploy to both Linux and Windows with no changes to my code.
I didn't want a completely cryptic and propriety language.
Now, there are many things on the market that fulfilled most of those criteria, however, there is nothing that fulfills all of them or that comes close in terms of size.

So I decided to see what I could do ...

And what did I do ?
The first step was to find a core language that was small, easy to learn, portable, and that had advanced features.

I settled on Lua (http://www.lua.org/), it is popular in the embedded and game development space and appeared to be easy to bind to.

The next step was finding bindings that where rich and small enough, I found that the Lua community had done most of that work for me :

I initially ported lua-httpd (http://www.steve.org.uk/Software/lua-httpd/) to Win32 and Linux, but I found it too limited.
LuaSocket (http://www.cs.princeton.edu/~diego/professional/luasocket/), was larger and more complex but ultimately much more flexible.
LuaSqlite (http://luasqlite.luaforge.net/lsqlite.html) provided a solid and light ANSI SQL RDBMS, so that was a no brainer.
When it came to my XML requirements I found nothing that really addressed my needs (in terms of size and speed), so I adapted some code I had seen for TinyXML and made it the foundation for my new binding, which I am still adding to right now.

GUI was the next problem, and it didn't seem easy to solve ... However, I stumbled across lua-fltk (http://lua-fltk.sourceforge.net/), and this proved to me that a tiny runtime for both Linux and Windows WAS possible with FLTK. Unfortunately the existing bindings where VERY basic and out of date and there was nothing I could use, as I wanted something that would work with new versions of FLTK and Lua and that I could improve ... So I hacked around and knocked up my own binding.

Having settled on FLTK I wondered if it may be possible to use it's basic GUI builder (FLUID) to generate my code, and much my to my surprise after less than an hour I had written a utility to convert it's generated code to my new murgaLua bindings.

My objective was complete.
So what's actually included ?
The murgaLua distribution includes all required binaries along with examples and all the source and documentation for my code and used libraries.

Basically everything you could need for developing with murgaLua.

This is what's in this archive :

The murgaLua binaries for Windows, Linux and MacOs (the runtime).
FLUID - (F)ltk (U)ser (I)nterface (D)esigner - GUI builder binaries compiled for Windows, Linux and MacOs.
"convertFluidToMurgaLua" murgaLua program for coverting FLUID "cxx" files.
Source for all the used FLTK bindings.
Source for murgaLua itself.
Documentation for all the APIs (even FLTK).
( FTLK docs are here, LuaSocket docs are here, and the LuaSQLite3 distribution is here).
If for any reason you want to rebuild murgaLua or port it to another platform you'll also need the following :
The FLTK toolkit (1.1.8).
Lua itself (5.1.x)
SqLite (3.5.x)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------
John Murga passed away on May 13, 2020 his websites www.murga-projects.com has gone inoperative. I posted the code here to keep his Lua legacy alive.

The old forums can be read on the wayback machine: http://web.archive.org/web/20160414061654/http://www.murga-projects.com/forum/forumdisplay.php?fid=2





About

murgaLua is a Lua 5.1 implementation using FLTK for gui, includes SQLite,, tinyXML, lua filesystem, lzlib, copas, lua-iostring, luasocket, md5, luaLZO, random_MOD. Created by John Murga (R.I.P. May 13, 2020)

License:GNU General Public License v2.0


Languages

Language:C++ 80.1%Language:C 16.6%Language:Lua 1.4%Language:Lex 0.6%Language:Shell 0.5%Language:Yacc 0.4%Language:Makefile 0.4%